catch
अपने अपवाद पकड़ेगा (और किसी भी अन्य ऐसा होता है)। ऐसा कहा जा रहा है कि, जब संभव हो तो मैं इस तरह के कोड लिखने से बचने की कोशिश करता हूं।
व्यक्तिगत रूप से, मुझे एक ही दायरे में फेंक दिए गए अपवाद के लिए अपवाद हैंडलिंग (पकड़) रखने का कोई कारण नहीं है। यदि आप अपनी विधि में अपनी त्रुटि को संभाल सकते हैं - तो कोशिश ब्लॉक में अपवाद हैंडलिंग (यानी: लॉगिंग) सीधे रखें।
catch
का उपयोग करना आपके try
ब्लॉक के तरीकों से फेंकने वाले अपवादों को पकड़ने के लिए अधिक उपयोगी, आईएमओ है। यह, उदाहरण के लिए, और अधिक उपयोगी हो अगर आपके // do stuff
खंड एक विधि है कि एक अपवाद उठाया कॉल करने के लिए हुआ होगा।
इसके अलावा, मैं हर अपवाद (Exception e
) को पकड़ने की सलाह नहीं देता, बल्कि विशिष्ट प्रकार के अपवाद जिन्हें आप सही तरीके से संभाल सकते हैं। प्रयोजनों के प्रवेश करने के लिए उपयोग, लेकिन अभी भी यह बुलबुला अप कॉल स्टैक दे: यानी - अगर आप अपनी पकड़ के भीतर अपवाद rethrowing रहे हैं इसका एक अपवाद होगा।
स्रोत
2010-07-20 19:37:24
कुछ भी आप पकड़ आप और है कि अपवाद को जन्म देती है में कर सकते हैं में करना होगा। आपको केवल असाधारण परिस्थितियों में अपवाद उठाना चाहिए। एक तरफ के रूप में आपको अपवाद वस्तुओं 'ई' को कॉल करने के लिए उपयोग नहीं किया जाना चाहिए। यह ईवेंट हैंडलर में 'EventArgs' पैरामीटर के साथ संघर्ष करेगा। –
@Philip: "। कुछ भी आप पकड़ आप और है कि अपवाद को जन्म देती है में कर सकते हैं में करना होगा" - यही कारण है कि मेरी बात थी :) अपने अन्य तर्क के लिए के रूप में, मैं एक बात करने के लिए सहमत है, लेकिन मैं व्यक्तिगत रूप से अपवाद नामकरण के साथ कोई समस्या नहीं वस्तुओं ई है (हालांकि मैं आमतौर पर अधिक सार्थक नाम का उपयोग करें), क्योंकि वे शायद ही कभी सीधे EventArgs साथ इस्तेमाल कर रहे हैं । –
डाउनवॉट्स क्यों? बस उत्सुक;) –