मुझे उपयोगकर्ताओं और समूहों के बीच उपयोगकर्ताओं, समूहों और मैपिंग का एक सेट मिला है। मेरे पास इन कार्यों में हेरफेर करने वाले विभिन्न फ़ंक्शन हैं, हालांकि कोई उपयोगकर्ता को < -> उस उपयोगकर्ता के लिए समूह मैपिंग जोड़ने में सक्षम नहीं होना चाहिए जो मौजूद नहीं है, न ही उस समूह को हटा दें जिसमें अभी भी उपयोगकर्ता के रूप में उपयोगकर्ता हैं।हास्केल "अपवाद"
तो मूल रूप से मैं इन कार्यों को "अपवाद" फेंकना चाहता हूं जिसे स्पष्ट रूप से कॉलर द्वारा निपटाया जाना चाहिए।
मैं पहली बार कुछ इस तरह लौटने के बारे में सोचा:
data Return r e = Success r | Exception e
और अगर फोन करने वाले Exception
के खिलाफ पैटर्न मैच, वे उम्मीद है कि एक संकलक चेतावनी मिल जाएगा करने में विफल रहता है, या कम से कम एक स्पष्ट क्रम है कोई समस्या होने पर त्रुटि।
क्या यह सबसे अच्छा तरीका है, और क्या यह एक पूर्व-पैक समाधान है जो यह करता है? नोट मुझे शुद्ध कोड में "अपवाद" फेंकने और पकड़ने की आवश्यकता है, आईओ मोनाड नहीं।