यह प्रोग्रामिंग 101 प्रश्न की तरह प्रतीत हो सकता है और मैंने सोचा था कि मुझे जवाब पता था लेकिन अब मुझे खुद को दोबारा जांचने की आवश्यकता है। नीचे दिए गए कोड के इस टुकड़े में, क्या पहले कैच ब्लॉक में फेंक दिया गया अपवाद नीचे सामान्य अपवाद कैच ब्लॉक द्वारा पकड़ा जाएगा?कैच ब्लॉक के अंदर फेंक दिया गया अपवाद - क्या इसे फिर से पकड़ा जाएगा?
try {
// Do something
} catch(IOException e) {
throw new ApplicationException("Problem connecting to server");
} catch(Exception e) {
// Will the ApplicationException be caught here?
}
मैंने हमेशा सोचा कि जवाब नहीं होगा, लेकिन अब मेरे पास कुछ अजीब व्यवहार है जो इसके कारण हो सकता है। उत्तर शायद अधिकांश भाषाओं के लिए समान है लेकिन मैं जावा में काम कर रहा हूं।
शायद आप "विचित्र व्यवहार का वर्णन कर सकता है "? –
क्या आप सुनिश्चित हैं कि एप्लिकेशन अपवाद को कहीं और नहीं फेंक दिया जा रहा है और इस ब्लॉक तक प्रचारित किया जा रहा है? – sblundy
मैंने इसे अपने ग्रहण आईडीई में देखा। यह कोशिश करने के लिए मुझे "नई अपवाद फेंकने" के लिए मजबूर करने के लिए मजबूर कर रहा है लेकिन मुझे नहीं पता कि क्यों। मैंने इसे अतीत में ऐसा करने के बिना किया है। मुझे नहीं लगता कि एक प्रयास ब्लॉक की आवश्यकता क्यों होगी। Google पर कई उदाहरण दिखाते हैं कि लोगों को कोशिश करने की आवश्यकता नहीं है। क्या ऐसा इसलिए है क्योंकि मैं एक कथन के अंदर फेंक रहा हूं? – djangofan