नहीं, हम try, catch और finally ब्लॉक्स के बीच कोई स्टेटमेंट नहीं लिख सकते और ये ब्लॉक्स एक यूनिट बनाते हैं। try कीवर्ड की कार्यक्षमता एक अपवाद ऑब्जेक्ट की पहचान करना और उस अपवाद ऑब्जेक्ट को पकड़ना और try ब्लॉक के निष्पादन को निलंबित करके पहचाने गए अपवाद ऑब्जेक्ट के साथ कंट्रोल को catch ब्लॉक में स्थानांतरित करना है। catch ब्लॉक की कार्यक्षमता try द्वारा भेजे गए अपवाद क्लास ऑब्जेक्ट को प्राप्त करना और उस अपवाद क्लास ऑब्जेक्ट को पकड़ना और उसे catch ब्लॉक में परिभाषित संबंधित अपवाद क्लास के रेफरेंस में असाइन करना है। finally ब्लॉक्स वे ब्लॉक्स हैं जो अपवाद की परवाह किए बिना अनिवार्य रूप से निष्पादित होने वाले हैं।
हम try के साथ catch ब्लॉक, try के साथ मल्टीपल catch ब्लॉक्स, try के साथ finally ब्लॉक और try के साथ catch और finally ब्लॉक्स जैसे स्टेटमेंट्स लिख सकते हैं और इन कॉम्बिनेशन्स के बीच कोई कोड या स्टेटमेंट नहीं लिख सकते। यदि हम इन ब्लॉक्स के बीच कोई स्टेटमेंट डालने का प्रयास करते हैं, तो यह एक कंपाइल-टाइम एरर फेंकेगा।
सिंटैक्स
try {
// अपवादों के लिए मॉनिटर किए जाने वाले स्टेटमेंट्स
} // हम यहां कोई स्टेटमेंट नहीं रख सकते
catch(Exception ex){
// यहां अपवादों को पकड़ना
} // हम यहां कोई स्टेटमेंट नहीं रख सकते
finally{
// finally ब्लॉक वैकल्पिक है और केवल तभी मौजूद हो सकता है जब try या try-catch ब्लॉक हो।
// यह ब्लॉक हमेशा निष्पादित होता है चाहे try ब्लॉक में अपवाद हुआ हो या नहीं
// और हुआ अपवाद catch ब्लॉक में पकड़ा गया हो या नहीं।
// finally ब्लॉक केवल System.exit() और किसी Error के होने पर निष्पादित नहीं होता।
}
उदाहरण
public class ExceptionHandlingTest {
public static void main(String[] args) {
System.out.println("हम यहां कितने भी स्टेटमेंट्स रख सकते हैं");
try {
int i = 10/0; // यह स्टेटमेंट ArithmeticException फेंकता है
System.out.println("यह स्टेटमेंट निष्पादित नहीं होगा");
} // हम यहां स्टेटमेंट्स नहीं रख सकते
catch(ArithmeticException ex){
System.out.println("यह ब्लॉक अपवाद फेंके जाने के तुरंत बाद निष्पादित होता है");
} // हम यहां स्टेटमेंट्स नहीं रख सकते
finally {
System.out.println("यह ब्लॉक हमेशा निष्पादित होता है");
}
System.out.println("हम यहां कितने भी स्टेटमेंट्स रख सकते हैं");
}
}
आउटपुट
हम यहां कितने भी स्टेटमेंट्स रख सकते हैं यह ब्लॉक अपवाद फेंके जाने के तुरंत बाद निष्पादित होता है यह ब्लॉक हमेशा निष्पादित होता है हम यहां कितने भी स्टेटमेंट्स रख सकते हैं