यहां तक कि सबसे अच्छे प्रोग्रामर भी अपने कोड में गलतियां करते हैं। टाइपो, अनपेक्षित उपयोगकर्ता इनपुट, या कई अन्य कारणों से त्रुटि हो सकती है जिन्हें ट्रैक करना मुश्किल है।
यही वह जगह है जहां अपवाद हैंडलिंग आती है। अच्छे कोड में अपवाद हैंडलर शामिल होते हैं, जो पूर्वनिर्धारित तरीके से कोड में त्रुटि का जवाब देंगे। अपवाद हैंडलर उपयोगी होते हैं क्योंकि वे एक प्रोग्राम को निर्देश देते हैं कि कोई त्रुटि होने पर कैसे प्रतिक्रिया दी जाए।
जावा में, try...catch
ब्लॉक का उपयोग अपवाद हैंडलिंग के लिए किया जाता है। यह ट्यूटोरियल अपवाद से निपटने की बुनियादी बातों पर चर्चा करेगा, try...catch
. का उपयोग कैसे करें अपवादों को संभालने के लिए ब्लॉक करें, और finally
. का उपयोग कैसे करें try...catch
. के साथ कथन . हम try...catch
. के कुछ उदाहरणों के माध्यम से भी चलेंगे कार्रवाई में ब्लॉक।
जावा अपवाद
अपवाद अप्रत्याशित घटनाएँ हैं जो तब होती हैं जब कोई प्रोग्राम निष्पादित किया जा रहा होता है। एक अपवाद एक प्रोग्राम के प्रवाह को बाधित करेगा और एक प्रोग्राम को पूरा होने से पहले चलना बंद कर सकता है।
अपवाद कई कारणों से होते हैं, जिनमें शामिल हैं:सर्वर तक पहुंचने में असमर्थ होना, कोड त्रुटियां, टाइपो, गैर-मौजूद फाइलें खोलना, गलत उपयोगकर्ता इनपुट, और बहुत कुछ।
त्रुटि संदेश जावा में अपवादों के विपरीत हैं। त्रुटियां उन शर्तों को संदर्भित करती हैं, जिनसे कोई प्रोग्राम पुनर्प्राप्त नहीं हो सकता है, जैसे कि स्मृति समाप्त हो जाना। इसलिए, त्रुटियों को आमतौर पर डेवलपर्स द्वारा नियंत्रित नहीं किया जाता है।
लेकिन अपवाद एक प्रोग्राम के भीतर समस्याएं हैं जिन्हें संभाला जा सकता है। जब कोई अपवाद उठाया जाता है, तो एक वस्तु बनाई जाती है जिसे अपवाद वस्तु . कहा जाता है . इन ऑब्जेक्ट्स में अपवाद पर डेटा होता है, जैसे इसका नाम और जहां इसे प्रोग्राम में उठाया गया था।
अब आप जावा में अपवाद प्रबंधन की मूल बातें जानते हैं, हम try...catch
. का उपयोग शुरू कर सकते हैं उन अपवादों को संभालने के लिए बयान।
81% प्रतिभागियों ने कहा कि बूटकैंप में भाग लेने के बाद उन्हें अपनी तकनीकी नौकरी की संभावनाओं के बारे में अधिक आत्मविश्वास महसूस हुआ। आज ही एक बूटकैंप से मिलान करें।
बूटकैंप शुरू करने से लेकर अपनी पहली नौकरी खोजने तक, औसत बूटकैंप ग्रेड ने करियर संक्रमण में छह महीने से भी कम समय बिताया।
Catch Java आज़माएं
try...catch
जावा में अपवादों को संभालने के लिए कथन का उपयोग किया जाता है। अपवादों को संभालने के लिए, कोड का एक ब्लॉक try_catch
. में रखा जाएगा खंड मैथा।
जब कोई प्रोग्राम try_catch
का सामना करता है ब्लॉक, कोड के भीतर try
ब्लॉक निष्पादित किया जाएगा। यदि कोई अपवाद उठाया जाता है, तो catch
. के अंतर्गत कोड ब्लॉक तुरंत निष्पादित किया जाएगा। catch
ब्लॉक एक try
. के बाद आना चाहिए try..catch
. में ब्लॉक करें बयान।
यहां try_catch
के लिए सिंटैक्स दिया गया है जावा में बयान:
कोशिश करें {// कोड चलाने के लिए} पकड़ें (अपवाद टाइप त्रुटि) {// अपवाद उठाए जाने पर कोड चलाने के लिए} अंत में {// अपवाद नहीं उठाए जाने पर भी चलाने के लिए कोड}
हम finally
के बारे में बात करेंगे इस ट्यूटोरियल में बाद में ब्लॉक करें, लेकिन फिलहाल, हम try_catch
. पर ध्यान केंद्रित करेंगे खंड मैथा। कोड का यह ब्लॉक कैसे काम करता है, यह स्पष्ट करने के लिए आइए एक उदाहरण के माध्यम से चलते हैं।
जावा उदाहरण को पकड़ने का प्रयास करें
मान लें कि हम एक प्रोग्राम बना रहे हैं जो studentNames
. नामक एक सरणी का उपयोग करता है . हम कंसोल में हमारे छात्रनाम सरणी में पांचवें नाम का प्रिंट आउट लेना चाहते हैं। हालाँकि, हमारी कक्षा में केवल छह छात्र हैं।
इसके परिणामस्वरूप हमारे कोड में एक त्रुटि उत्पन्न होगी क्योंकि हम उस मान को संदर्भित कर रहे होंगे जो मौजूद नहीं था। यहां एक उदाहरण प्रोग्राम है जो इंडेक्स वैल्यू 5 (हमारी कक्षा में छठा छात्र, क्योंकि इंडेक्स वैल्यू 0 से शुरू होता है) के साथ छात्र का नाम प्रिंट करने का प्रयास करता है:
कक्षा मुख्य {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] तर्क) {स्ट्रिंग [] छात्र नाम ={"लिंडा", "ग्रेग", "रॉन", "ग्राहम", "एलेक्सिस"}; System.out.println ( छात्रनाम[5]);}
हमारा कोड लौटाता है:
थ्रेड में अपवाद "मुख्य" java.lang.ArrayIndexOutOfBoundsException:इंडेक्स 5 की लंबाई 5 के लिए Main.main(Main.java:4)
जैसा कि आप देख सकते हैं, हमारे प्रोग्राम ने एक लंबी त्रुटि लौटा दी क्योंकि हमने एक ऐसे मान को संदर्भित करने का प्रयास किया जो मौजूद नहीं है।
अब, आइए एक try...catch
. का उपयोग करने का प्रयास करें हमारी त्रुटियों को संभालने के लिए ब्लॉक करें। जब कोई त्रुटि आती है, तो हमारे प्रोग्राम को "एक त्रुटि हुई" का प्रिंट आउट लेना चाहिए, ताकि हमें पता चले कि कुछ गलत हो गया है। हम इस कार्य को पूरा करने के लिए निम्नलिखित कोड का उपयोग कर सकते हैं:
क्लास मेन {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] args) {कोशिश {स्ट्रिंग [] छात्र नाम ={"लिंडा", "ग्रेग", "रॉन", "ग्राहम", "एलेक्सिस"}; System.out। println(studentNames[5]);} पकड़ें (अपवाद ई) { System.out.println ("एक त्रुटि थी।"); }}पूर्व>अब जब हम अपना कोड चलाते हैं, तो निम्न प्रतिक्रिया वापस आती है:
There was an error.
इसके अतिरिक्त, हम कई
catch
specify निर्दिष्ट कर सकते हैं ब्लॉक। यह उपयोगी है क्योंकि यह हमें प्रत्येक अपवाद को अलग तरीके से संभालने की अनुमति देता है।
ऊपर के उदाहरण में, एक
ArrayIndexOutOfBoundsException
उठाया गया था। यदि हम उस त्रुटि के लिए विशेष रूप से परीक्षण करना चाहते हैं, कंसोल पर एक कस्टम संदेश मुद्रित करना चाहते हैं, और अन्य सामान्य अपवादों के लिए परीक्षण करना चाहते हैं, तो हम एकाधिक कैच स्टेटमेंट का उपयोग कर सकते हैं।
यहां एक प्रोग्राम का उदाहरण दिया गया है जो
ArrayIndexOutOfBoundsException
दोनों के लिए परीक्षण करता है और एक सामान्य अपवाद और प्रत्येक त्रुटि के लिए कस्टम प्रतिक्रियाएं हैं:
क्लास मेन {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] args) {कोशिश {स्ट्रिंग [] छात्र नाम ={"लिंडा", "ग्रेग", "रॉन", "ग्राहम", "एलेक्सिस"}; System.out। println(studentNames[5]);} पकड़ें (ArrayIndexOutOfBoundsException e) { System.out.println ("ArrayIndexOutOfBoundsException को उठाया गया था।");} पकड़ें (अपवाद ई) { System.out.println ("एक त्रुटि थी।"); }}}अब, जब हम अपना प्रोग्राम चलाते हैं, तो निम्न संदेश कंसोल पर प्रिंट होता है:
ArrayIndexOutOfBoundsException उठाया गया था।यह प्रतिक्रिया लौटा दी जाती है क्योंकि एक
ArrayIndexOutOfBoundsException
हमारे कार्यक्रम में उठाया गया था। लेकिन अगर एक और त्रुटि हुई, तोException e
. में कोड पकड़ ब्लॉक चलेगा, और निम्न संदेश कंसोल पर मुद्रित किया जाएगा:
There was an error.
अंत में वक्तव्य
finally
स्टेटमेंट का उपयोगtry...catch
. के बाद कोड के ब्लॉक को निष्पादित करने के लिए किया जाता है ब्लॉक निष्पादित किया गया है।finally
ब्लॉक वैकल्पिक है, और इसे परिभाषित होने पर हमेशा निष्पादित किया जाता है। यदि कोई अपवाद नहीं उठाया जाता है, तोfinally
कोशिश ब्लॉक के बाद ब्लॉक निष्पादित किया जाता है; यदि कोई अपवाद उठाया जाता है, तो उसेcatch
. के बाद निष्पादित किया जाता है खंड मैथा।
कार्रवाई में अंतिम कथन को स्पष्ट करने के लिए आइए ऊपर से हमारे उदाहरण का उपयोग करें। मान लें कि हम चाहते हैं कि
This block has finished executing
. बताते हुए कंसोल पर एक संदेश मुद्रित किया जाए . हमें यह बताने के लिए किtry_catch
बयान पूरा हो गया है। हम निम्नलिखित कोड का उपयोग करने का प्रयास कर सकते हैं:
क्लास मेन {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] args) {कोशिश {स्ट्रिंग [] छात्र नाम ={"लिंडा", "ग्रेग", "रॉन", "ग्राहम", "एलेक्सिस"}; System.out। println(studentNames[5]);} पकड़ें (ArrayIndexOutOfBoundsException e) { System.out.println ("ArrayIndexOutOfBoundsException को उठाया गया था।");} पकड़ें (अपवाद ई) { System.out.println ("एक त्रुटि थी।"); } अंत में { System.out.println ("कोड के इस ब्लॉक का निष्पादन समाप्त हो गया है।"); }}}जब हम अपना कोड चलाते हैं, तो निम्नलिखित प्रतिक्रिया दी जाती है:
ArrayIndexOutOfBoundsException उठाया गया था।कोड के इस ब्लॉक ने क्रियान्वित करना समाप्त कर दिया है।
जैसा कि आप देख सकते हैं, हमारे कोड ने
ArrayIndexOutOfBoundsException
को ऊपर उठाया है अपवाद, जैसा कि हमने ऊपर देखा, और इसने प्रासंगिकcatch
. के भीतर कोड को निष्पादित किया खंड मैथा।
ऊपर दिए गए हमारे उदाहरण में, हमने एक
finally
. निर्दिष्ट किया है बयान। इसलिए, हमारे कोड ने संदेश का प्रिंट आउट लियाThis block of code has finished executing
.catch
ब्लॉक निष्पादित।
निष्कर्ष
try...catch
जावा में ब्लॉक का उपयोग अपवादों को इनायत से संभालने के लिए किया जाता है।try
. के अंतर्गत कोड ब्लॉक निष्पादित किया जाता है, और यदि कोई अपवाद उठाया जाता है, तो संबंधितcatch
. के भीतर कोड ब्लॉक निष्पादित किया जाता है। इसके अलावा,finally
स्टेटमेंट का उपयोगtry...catch
. के बाद कोड निष्पादित करने के लिए किया जाता है ब्लॉक निष्पादित किया गया है, भले ही कोई अपवाद नहीं उठाया गया हो।
इस ट्यूटोरियल में चर्चा की गई कि
try...catch
. का उपयोग कैसे करें जावा में अपवादों को संभालने के लिए ब्लॉक करें और जावा का उपयोग कैसे करेंfinally
खंड मैथा। हमनेtry...catch
. दोनों का एक उदाहरण भी देखा ब्लॉक करें औरfinally
कथन का उपयोग त्रुटियों को संभालने के लिए किया जा रहा है।
अब आप जावा में अपवादों को आत्मविश्वास से संभालने के लिए आवश्यक जानकारी से लैस हैं!