मैं MSDN में चारों ओर खुदाई और this article जो सलाह के एक दिलचस्प सा था पाया गया था: सार्वजनिक सदस्यों है कि या तो फेंक कर सकते हैं या कुछ विकल्प के आधार पर अपवाद फेंक नहीं नहीं है।एक पैरामीटर के आधार पर एक अपवाद फेंक दो/नहीं-फेंकना - यह एक अच्छा विचार क्यों नहीं है?
उदाहरण के लिए:
Uri ParseUri(string uriValue, bool throwOnError)
अब निश्चित रूप से मुझे लगता है कि मामलों इस भयानक होगा के 99% में देख सकते हैं, लेकिन इसके लिए प्रासंगिक उपयोग उचित है? जब डेटाबेस या एक विन्यास फाइल में डेटा तक पहुँचने
ही एक मामला मैंने देखा है यह प्रयोग किया जाता एक "AllowEmpty" पैरामीटर के साथ है। उदाहरण के लिए:
object LoadConfigSetting(string key, bool allowEmpty);
इस मामले में, विकल्प शून्य वापस लौटना होगा। लेकिन फिर कॉलिंग कोड शून्य संदर्भों के साथ भरेगा। (और यदि आप इतने इच्छुक थे तो विधि वास्तव में विशेष रूप से कॉन्फ़िगर करने योग्य मान के रूप में शून्य को अनुमति देने की क्षमता को रोक देगा)।
आपके क्या विचार हैं? यह एक बड़ी समस्या क्यों होगी?
मुझे लगता है कि आप scen गलत समझा है ario। हमारे पास एक अपवाद फेंकने का विकल्प है (जो प्रोग्राम या जो कुछ भी रोक देगा), या अपवाद फेंक नहीं सकता है (यानी शून्य वापस करें या कुछ भी नहीं करें)। किसी भी मामले में अपवाद फेंक दिए जाते हैं और फिर पकड़े जाते हैं। – cbp