हां, आखिरकार ब्लॉक हमेशा चलता है ... सिवाय कब:
- ट्राइ-कैच-अंततः ब्लॉक चलाने वाला धागा मारा जाता है या बाधित होता है
- तुम इस्तेमाल
System.exit(0);
- अंतर्निहित वीएम किसी अन्य तरीके से नष्ट हो जाता है
- अंतर्निहित हार्डवेयर किसी तरह से अनुपयोगी है
इसके अतिरिक्त, यदि आपके अंतिम ब्लॉक में एक विधि बिना किसी अपवाद को छोड़ती है, तो उसके बाद कुछ भी निष्पादित नहीं किया जाएगा (अर्थात अपवाद किसी अन्य कोड में होगा)। एक बहुत ही सामान्य मामला जहां ऐसा होता है java.sql.Connection.close()
।
एक तरफ के रूप में, मैं अनुमान लगा रहा हूं कि आपके द्वारा उपयोग किए गए कोड का नमूना केवल एक उदाहरण है, लेकिन वास्तविक तर्क को अंततः ब्लॉक के अंदर रखने से सावधान रहें। अंततः ब्लॉक संसाधन क्लीन-अप (DB कनेक्शन को बंद करना, फ़ाइल हैंडल आदि को जारी करना) के लिए अभिप्रेत है, न कि लॉजिक रन के लिए। यदि यह कोशिश-पकड़ने वाले ब्लॉक से पहले इसे चलाना चाहिए, तो कुछ ऐसा जो एक अपवाद को फेंक सकता है, से दूर, क्योंकि आपका इरादा लगभग निश्चित रूप से समान है।