Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

क्या Java में finally ब्लॉक हमेशा निष्पादित होता है?


हां, finally ब्लॉक हमेशा निष्पादित होता है जब तक कि असामान्य प्रोग्राम टर्मिनेशन न हो जो या तो JVM क्रैश से या System.exit() कॉल से परिणामस्वरूप होता है।

  • एक finally ब्लॉक हमेशा निष्पादित होता है चाहे अपवाद हुआ हो या नहीं।
  • यदि फाइल बंद करने या DB कनेक्शन जैसा अपवाद होता है, तो finally ब्लॉक का उपयोग कोड को क्लीन अप करने के लिए किया जाता है।
  • हम यह नहीं कह सकते कि finally ब्लॉक हमेशा निष्पादित होता है क्योंकि कभी-कभी यदि try ब्लॉक में System.exit() या इसी तरह का कोई कोड लिखा जाता है तो प्रोग्राम ऑटोमेटिकली टर्मिनेट हो जाएगा और finally ब्लॉक इस केस में निष्पादित नहीं होगा।
  • finally ब्लॉक अन्य स्थितियों के कारण भी निष्पादित नहीं होगा जैसे जब JVM मेमोरी से बाहर निकलता है, जब हमारा जावा प्रोसेस टास्क मैनेजर या कंसोल से जबरदस्ती किल किया जाता है, जब हमारी मशीन पावर फेल्योर के कारण शट डाउन होती है और हमारे try ब्लॉक में डेडलॉक कंडीशन होती है।

उदाहरण 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");
        }
    }
}

उपरोक्त उदाहरण में, finally ब्लॉक हमेशा निष्पादित होता है यदि अपवाद हुआ है या नहीं।

आउटपुट

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");
        }
    }
}

उपरोक्त उदाहरण में, try ब्लॉक में System.exit(1) कंडीशन के कारण finally ब्लॉक निष्पादित नहीं होगा।

आउटपुट

I am in try block

  1. - Java में Instance Initializer Block का उपयोग क्यों करें

    इंस्टेंस इनिशियलाइज़र ब्लॉक एक कंस्ट्रक्टर के समान है। यह प्रत्येक ऑब्जेक्ट के लिए एक बार कॉल किया जाता है और इंस्टेंस वेरिएबल्स के लिए प्रारंभिक मान सेट करने के लिए उपयोग किया जा सकता है। नीचे उदाहरण देखें।public class Tester { public int a; { a = 10; } public static void main(String

  1. - Java में वर्तमान वर्किंग डायरेक्टरी कैसे प्राप्त करें

    Java में वर्तमान वर्किंग डायरेक्टरी कैसे प्राप्त करें? वर्तमान वर्किंग डायरेक्टरी का अर्थ है आपके वर्तमान Java प्रोजेक्ट का रूट फोल्डर। हम Java में निम्न सिस्टम प्रॉपर्टी फ़ंक्शन का उपयोग करके वर्तमान वर्किंग डायरेक्टरी प्राप्त कर सकते हैं: String cwd = System.getProperty(user.dir); Java में वर्तमान

  1. - Java 8: LocalDate, LocalTime, और LocalDateTime के साथ वर्तमान दिनांक और समय प्राप्त करें

    Java में वर्तमान दिनांक और समय कैसे प्राप्त करें? इस ट्यूटोरियल में हम Java 8 में तीन अलग-अलग विधियों को देखेंगे। दिनांक और समय प्रदर्शित करने के लिए उपयोग की जाने वाली क्लासेस हैं LocalDate, LocalTime, LocalDateTime। वर्तमान दिनांक प्राप्त करें LocalDate क्लास का उपयोग दिनांक दर्शाने के लिए किया जा