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