मैं अब कुछ समय के लिए इस समस्या को हल कर रहा हूं और खुद को लगातार कैविट और विरोधाभास ढूंढ रहा हूं, इसलिए मुझे उम्मीद है कि कोई व्यक्ति निम्नलिखित के लिए एक निष्कर्ष निकाल सकता है:
त्रुटि कोड पर अनुकूल अपवाद
जहाँ तक मुझे जानकारी है, उद्योग में चार साल से काम करने से लेकर, किताबें और ब्लॉग पढ़ने आदि, त्रुटियों को संभालने के लिए मौजूदा सबसे अच्छा अभ्यास है, अपवाद कोड फेंकने के बजाय, त्रुटि कोड वापस करना (जरूरी नहीं कि त्रुटि कोड हो, लेकिन ए टाइप करें)
लेकिन - मुझे यह विरोधाभास लगता है ...
इंटरफेस के लिए कोडिंग, कार्यान्वयन नहीं
हम युग्मन को कम करने के लिए इंटरफेस या सार को कोड करते हैं। हम नहीं जानते हैं, या जानना चाहते हैं, इंटरफ़ेस का विशिष्ट प्रकार और कार्यान्वयन। तो हम संभवतः कैसे जान सकते हैं कि हमें किन अपवादों को पकड़ने के लिए देखना चाहिए? कार्यान्वयन 10 अलग-अलग अपवादों को फेंक सकता है, या यह कोई भी नहीं फेंक सकता है। जब हम एक अपवाद को पकड़ते हैं तो निश्चित रूप से हम कार्यान्वयन के बारे में धारणा बना रहे हैं?
जब तक - इंटरफ़ेस है ...
अपवाद विनिर्देशों
कुछ भाषाएं डेवलपर्स को throws
यह बताने की अनुमति देती हैं कि कुछ विधियाँ कुछ अपवाद (उदाहरण के लिए जावा, कीवर्ड का उपयोग करती हैं ।) कॉलिंग कोड के दृष्टिकोण से यह ठीक लगती हैं - हम स्पष्ट रूप से जानते हैं कि हमें किन अपवादों को पकड़ने की आवश्यकता हो सकती है।
लेकिन - यह एक सुझाव है लगता है ...
लीक से हटकर
एक इंटरफ़ेस को क्यों निर्दिष्ट करना चाहिए जो अपवादों को फेंका जा सकता है? क्या होगा यदि कार्यान्वयन को एक अपवाद को फेंकने की आवश्यकता नहीं है, या अन्य अपवादों को फेंकने की आवश्यकता है? इंटरफ़ेस स्तर पर, कोई तरीका नहीं है, यह जानने के लिए कि कौन सा अपवाद लागू करना चाहता है।
इसलिए...
समाप्त करने के लिए
सॉफ़्टवेयर के सर्वोत्तम व्यवहारों के विरोधाभासी प्रतीत होने पर (मेरी नज़र में) अपवाद क्यों पसंद किए जाते हैं? और, यदि त्रुटि कोड बहुत खराब हैं (और मुझे त्रुटि कोड के विकारों पर बेचने की आवश्यकता नहीं है), तो क्या कोई और विकल्प है? त्रुटि हैंडलिंग के लिए कला की वर्तमान (या जल्द ही) स्थिति क्या है जो ऊपर उल्लिखित के रूप में सर्वोत्तम प्रथाओं की आवश्यकताओं को पूरा करती है, लेकिन कॉल कोड पर भरोसा नहीं करती है जो त्रुटि कोड के रिटर्न मूल्य की जांच कर रहा है?