1. throw
संचालक
जब एक catch
ब्लॉक द्वारा एक अपवाद पकड़ा जाता है, और जब तक इसे जावा मशीन पर नहीं फेंका जाता है, यह केवल एक वस्तु है जो इनहेरिट करती है Exception
(या बल्कि, Throwable
)। अपवाद वस्तु में कोई जादुई गुण नहीं होता है।
अपवाद कैसे काम करते हैं, इसके सभी तर्क केवल एक विशेष तरीका है जब जावा मशीन एक अपवाद फेंके जाने पर व्यवहार करती है।
आप हमेशा जावा मशीन में पकड़े गए अपवाद को फिर से फेंक सकते हैं। ऐसा करने के लिए, आपको throw
ऑपरेटर का उपयोग करने की आवश्यकता है:
throw exception;
उदाहरण:
कोड | कंसोल आउटपुट |
---|---|
|
|
इस कोड में, हमने एक अपवाद पकड़ा, स्क्रीन पर इसके बारे में एक संदेश प्रदर्शित किया और फिर इसे फिर से फेंक दिया।
catch
एक ही try
ब्लॉक में अन्य ब्लॉकों द्वारा एक अपवाद को पकड़ा नहीं जा सकता है ।
2. आपके अपवाद
वैसे, आप स्वयं एक अपवाद वस्तु बना सकते हैं: यह केवल एक वस्तु है जिसका प्रकार है Exception
या एक वर्ग जो इसे प्राप्त करता है। और इसे फेंक दो।
यह सुनने में जितना आसान लगता है, उससे कहीं ज्यादा आसान है। उदाहरण:
कोड | कंसोल आउटपुट |
---|---|
|
|
उपरोक्त उदाहरण में, हमने एक नया अपवाद ऑब्जेक्ट बनाया जिसका प्रकार है RuntimeException
और तुरंत throw
ऑपरेटर का उपयोग करके इसे फेंक दिया।
इसे तुरंत ब्लॉक द्वारा पकड़ा जाएगा catch
, क्योंकि RuntimeException इनहेरिट करती है Exception
। कोड catch (Exception except)
उन सभी वर्गों की अपवाद वस्तुओं को पकड़ता है जो Exception
वर्ग को प्राप्त करते हैं।
3. finally
खोजशब्द
एक और महत्वपूर्ण बिंदु। कभी-कभी एक प्रोग्रामर को कोड में अपवाद होने के बावजूद कुछ कार्रवाई करने की आवश्यकता होती है। उदाहरण के लिए, मान लीजिए कि हमने लिखने के लिए एक फाइल खोली है। खोली गई फ़ाइल को कॉल करके बंद किया जाना चाहिए close()
।
try
{
// Code where an exception might occur
}
catch(ExceptionType name)
{
// Exception handling code
}
finally
{
// Code that must executed no matter what happens
}
इन अनिवार्य क्रियाओं को करने के लिए, निर्माण में एक अन्य प्रकार का ब्लॉक ( finally
) जोड़ा गया try-catch
, जिससे try-catch-finally
निर्माण का निर्माण हुआ। यह इस तरह दिख रहा है:
उदाहरण:
FileInputStream source = null;
try
{
source = new FileInputStream("c:\\note.txt");
source.read();
}
catch(Exception except)
{
System.out.println("Caught the exception");
throw except;
}
finally
{
if (source != null)
source.close();
}
finally
ब्लॉक में कोड किसी भी स्थिति में निष्पादित होगा, भले ही कोई अपवाद हो। यहां तक कि अगर एक अपवाद को फेंक दिया जाता है और पकड़ा नहीं जाता है, finally
तब भी ब्लॉक निष्पादित होगा।
वैसे, यदि आप अपवाद नहीं पकड़ना चाहते हैं, लेकिन आपको ब्लॉक की आवश्यकता है finally
, तो निर्माण के लिए शॉर्टेंड नोटेशन का उपयोग करें try-catch-finally
: एक try-finally
ब्लॉक। ऐसा कुछ दिखता है:
try
{
// Code where an exception might occur
}
finally
{
// Code that must executed no matter what happens
}
GO TO FULL VERSION