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