हां, अंतत:ब्लॉक को हमेशा निष्पादित किया जाता है जब तक कि कोई असामान्य प्रोग्राम समाप्ति या तो JVM क्रैश या System.exit() पर कॉल से उत्पन्न न हो।
- आखिरकार ब्लॉक हमेशा निष्पादित होता है चाहे अपवाद हुआ हो या नहीं।
- यदि कोई अपवाद उत्पन्न होता है जैसे किसी फ़ाइल या DB कनेक्शन को बंद करना, तो अंत में ब्लॉक का उपयोग कोड को साफ करने के लिए किया जाता है।
- हम यह नहीं कह सकते कि अंत में ब्लॉक हमेशा निष्पादित होता है क्योंकि कभी-कभी यदि System.exit() या कुछ समान कोड जैसे किसी भी कथन को try ब्लॉक में लिखा जाता है तो प्रोग्राम स्वचालित रूप से समाप्त हो जाएगा और अंत में इस मामले में ब्लॉक निष्पादित नहीं किया जाएगा।ली>
- आखिरकार ब्लॉक अन्य स्थितियों के कारण निष्पादित नहीं होगा जैसे कि जब JVM मेमोरी से बाहर हो जाता है जब हमारी जावा प्रक्रिया को टास्क मैनेजर या कंसोल से जबरदस्ती मार दिया जाता है जब हमारी मशीन बिजली की विफलता और हमारे ट्राई ब्लॉक में गतिरोध की स्थिति के कारण बंद हो जाती है।ली>
उदाहरण 1
public class FinallyBlock { public static void main(String args[]){ try { int a=10,b=30; int c = b/a; System.out.println(c); } catch(ArithmeticException ae){ System.out.println(ae); } finally { System.out.println("finally block is always executed"); } } }
उपरोक्त उदाहरण में, अपवाद हुआ है या नहीं, तो अंत में ब्लॉक हमेशा निष्पादित होता है।
आउटपुट
3 finally block is always executed
उदाहरण 2
public class FinallyBlock { public static void main(String args[]) { try { System.out.println("I am in try block"); System.exit(1); } catch(Exception ex){ ex.printStackTrace(); } finally { System.out.println("I am in finally block"); } } }
उपरोक्त उदाहरण में, कोशिश ब्लॉक में System.exit(1) स्थिति के कारण अंत में ब्लॉक निष्पादित नहीं होगा।
आउटपुट
I am in try block