Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Java

जावा में ट्राई कैच के साथ एक्सेप्शन हैंडलिंग

यहां तक ​​कि सबसे अच्छे प्रोग्रामर भी अपने कोड में गलतियां करते हैं। टाइपो, अनपेक्षित उपयोगकर्ता इनपुट, या कई अन्य कारणों से त्रुटि हो सकती है जिन्हें ट्रैक करना मुश्किल है।

यही वह जगह है जहां अपवाद हैंडलिंग आती है। अच्छे कोड में अपवाद हैंडलर शामिल होते हैं, जो पूर्वनिर्धारित तरीके से कोड में त्रुटि का जवाब देंगे। अपवाद हैंडलर उपयोगी होते हैं क्योंकि वे एक प्रोग्राम को निर्देश देते हैं कि कोई त्रुटि होने पर कैसे प्रतिक्रिया दी जाए।

जावा में, 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 कथन का उपयोग त्रुटियों को संभालने के लिए किया जा रहा है।

अब आप जावा में अपवादों को आत्मविश्वास से संभालने के लिए आवश्यक जानकारी से लैस हैं!


  1. जावास्क्रिप्ट में ट्राई एंड कैच स्टेटमेंट को उदाहरण सहित समझाएं।

    कोशिश कथन हमें कोड के एक ब्लॉक को निष्पादित करने और त्रुटियों के लिए परीक्षण करने की अनुमति देता है। फिर उन त्रुटियों को पकड़ लिया जाता है और कैच स्टेटमेंट द्वारा नियंत्रित किया जाता है। जावास्क्रिप्ट में ट्राई एंड कैच स्टेटमेंट के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang=

  1. जावाएफएक्स ग्रहण के साथ।

    JavaFx को एक्लिप्स में सेटअप करने के लिए, सबसे पहले, सुनिश्चित करें कि आपने अपने सिस्टम में एक्लिप्स और जावा को सफलतापूर्वक इंस्टॉल कर लिया है। मावेन निर्भरता मावेन निर्भरता का उपयोग करके जावाएफएक्स पर्यावरण स्थापित करने के लिए, ग्रहण में एक जावा प्रोजेक्ट बनाएं, इसे एक मावेन प्रोजेक्ट में परिवर्ति

  1. कोड उदाहरणों के साथ जावा 8 स्ट्रीम ट्यूटोरियल

    इस ब्लॉग पोस्ट में, हम Java 8 Streams सुविधाओं पर चर्चा करने जा रहे हैं और बहुत सारे अलग-अलग कोड उदाहरण प्रदान करेंगे। जावा स्ट्रीम्स जावा में कार्यात्मक प्रोग्रामिंग लाती हैं और वे जावा 8 में समर्थित हैं, इसलिए यदि आपके पास जावा का पुराना संस्करण है, तो आपको जावा स्ट्रीम का उपयोग करने के लिए जावा