जब किसी अपवाद को कैच ब्लॉक में कैश किया जाता है, तो आप थ्रो कीवर्ड (जिसका उपयोग अपवाद ऑब्जेक्ट को फेंकने के लिए किया जाता है) का उपयोग करके इसे फिर से फेंक सकते हैं।
अपवादों को फिर से फेंकते समय आप उसी अपवाद को फेंक सकते हैं जो इसे -
. के रूप में समायोजित किए बिना हैकोशिश करें {int परिणाम =(गिरफ्तारी [ए])/(गिरफ्तारी [बी]); System.out.println ("+arr[a]+"/"+arr[b]+" का परिणाम:"+result);}catch(ArithmeticException e) {फेंक ई;}
या, इसे एक नए अपवाद में लपेटें और इसे फेंक दें। जब आप किसी कैश्ड अपवाद को किसी अन्य अपवाद में लपेटते हैं और उसे फेंकते हैं, तो इसे अपवाद श्रृखंला या अपवाद रैपिंग के रूप में जाना जाता है, ऐसा करने से आप अपने अपवाद को समायोजित कर सकते हैं, अमूर्तता को बनाए रखते हुए उच्च स्तर के अपवाद को फेंक सकते हैं।
कोशिश करें {int परिणाम =(गिरफ्तारी [ए])/(गिरफ्तारी [बी]); System.out.println ("+arr[a]+"/"+arr[b]+" का परिणाम:"+result);}catch(ArrayIndexOutOfBoundsException e) {फेंक new IndexOutOfBoundsException();}
उदाहरण
निम्नलिखित जावा उदाहरण में डेमोमेथोड () में हमारा कोड ArrayIndexOutOfBoundsException एक अंकगणित अपवाद को फेंक सकता है। हम इन दो अपवादों को दो अलग-अलग कैच ब्लॉक में पकड़ रहे हैं।
कैच ब्लॉक में, हम दोनों अपवादों को फिर से फेंक रहे हैं, एक को उच्च अपवादों में लपेटकर और दूसरे को सीधे।
आयात करें int[] गिरफ्तारी ={10, 20, 30, 2, 0, 8}; System.out.println ("सरणी:" + Arrays.toString (गिरफ्तारी)); System.out.println ("इस सरणी से अंश और हर (नहीं 0) चुनें (स्थिति 0 से 5 दर्ज करें)"); int a =sc.nextInt (); इंट बी =sc.nextInt (); कोशिश करें {int परिणाम =(गिरफ्तारी [ए])/(गिरफ्तारी [बी]); System.out.println ("+arr[a]+"/"+arr[b]+" का परिणाम:"+result); } पकड़ें (ArrayIndexOutOfBoundsException e) { नया IndexOutOfBoundsException () फेंकें; } पकड़ें (अंकगणित अपवाद ई) {फेंक ई; } } सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] args) {नया RethrowExample().demoMethod(); }}आउटपुट1
एरे:[10, 20, 30, 2, 0, 8] इस सरणी से अंश और हर (नहीं 0) चुनें (स्थिति 0 से 5 तक दर्ज करें) 04 थ्रेड में अपवाद "मुख्य" java.lang.ArithmeticException:/ by myPackage.RethrowExample.demoMethod(RethrowExample.java:16) पर myPackage.RethrowExample.main(RethrowExample.java:25)पर शून्य
आउटपुट2
एरे:[10, 20, 30, 2, 0, 8] इस सरणी से अंश और हर (नहीं 0) चुनें (स्थिति 0 से 5 दर्ज करें) 1245 थ्रेड में अपवाद "मुख्य" java.lang.IndexOutOfBoundsException myPackage पर। RethrowExample.demoMethod(RethrowExample.java:17) myPackage.RethrowExample.main(RethrowExample.java:23)पर