अपवादों को नजरअंदाज करना, जो 'अंत में' ब्लॉक होता है, आम तौर पर एक बुरा विचार है जब तक कि कोई यह नहीं जानता कि उन अपवादों का क्या होगा और वे किन परिस्थितियों का प्रतिनिधित्व करेंगे। सामान्य try/finally
उपयोग पैटर्न में, try
ब्लॉक चीजों को एक राज्य में रखता है, बाहरी कोड की अपेक्षा नहीं होगी, और finally
ब्लॉक उन चीजों को पुनर्स्थापित करता है जो बाहरी कोड की अपेक्षा करता है। बाहरी कोड जो एक अपवाद को पकड़ता है, आम तौर पर उम्मीद करेगा कि अपवाद के बावजूद, सब कुछ एक को बहाल कर दिया गया हैnormal
राज्य। उदाहरण के लिए, मान लें कि कुछ कोड लेनदेन शुरू करता है और फिर दो रिकॉर्ड जोड़ने की कोशिश करता है; "अंत में" ब्लॉक एक "रोलबैक करता है यदि प्रतिबद्ध नहीं है" ऑपरेशन। दूसरे "ऐड" ऑपरेशन के निष्पादन के दौरान होने वाले अपवाद के लिए एक कॉलर तैयार किया जा सकता है, और उम्मीद कर सकता है कि यदि वह इस तरह के अपवाद को पकड़ता है, तो डेटाबेस उस स्थिति में होगा जो ऑपरेशन से पहले या तो प्रयास किया गया था। यदि, हालांकि, रोलबैक के दौरान एक दूसरा अपवाद होता है, तो खराब स्थिति हो सकती है यदि कॉलर डेटाबेस स्थिति के बारे में कोई धारणा बनाता है। रोलबैक विफलता एक बड़े संकट का प्रतिनिधित्व करती है - एक जिसे कोड द्वारा पकड़ा नहीं जाना चाहिए, वह केवल "रिकॉर्ड जोड़ने में विफल" अपवाद की अपेक्षा करता है।
मेरा व्यक्तिगत झुकाव एक अंतिम विधि के अपवादों को पकड़ना होगा जो उन्हें "क्लीनअपफैडएक्स अपवाद" में लपेटते और लपेटते हैं, यह पहचानते हुए कि ऐसी विफलता एक बड़ी समस्या का प्रतिनिधित्व करती है और इस तरह के अपवाद को हल्के से नहीं पकड़ा जाना चाहिए।