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

Java में Try-Catch से Exception Handling

Java Exceptions

यहां तक कि सर्वश्रेष्ठ प्रोग्रामर भी अपने कोड में गलतियां करते हैं। एक त्रुटि टाइपो, अप्रत्याशित यूजर इनपुट, या कई अन्य कारणों से हो सकती है जिन्हें ट्रैक करना मुश्किल होता है।

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

Java में, exception handling के लिए try...catch ब्लॉक का उपयोग किया जाता है। यह ट्यूटोरियल exception handling की मूल बातों पर चर्चा करेगा, try...catch ब्लॉक का उपयोग करके exceptions को कैसे संभालें, और try...catch के साथ finally स्टेटमेंट का उपयोग कैसे करें। हम try...catch ब्लॉक के क्रिया में कुछ उदाहरणों के माध्यम से भी चलेंगे।

Java Exceptions

Exceptions अप्रत्याशित घटनाएं हैं जो तब होती हैं जब कोई प्रोग्राम निष्पादित किया जा रहा होता है। एक exception प्रोग्राम के प्रवाह को बाधित करेगा और प्रोग्राम को पूरा होने से पहले रुकने का कारण बन सकता है।

Exceptions कई कारणों से होती हैं, जिनमें शामिल हैं: सर्वर तक पहुंचने में असमर्थता, कोड त्रुटियां, टाइपो, गैर-मौजूद फ़ाइलें खोलना, गलत यूजर इनपुट, और बहुत कुछ।

Java में Error messages exceptions के विपरीत हैं। Errors उन शर्तों को संदर्भित करते हैं जो पूरी होती हैं जिनसे प्रोग्राम रिकवर नहीं कर सकता, जैसे मेमोरी समाप्त होना। इसलिए, errors को आमतौर पर डेवलपर्स द्वारा हैंडल नहीं किया जाता है।

लेकिन exceptions प्रोग्राम के भीतर समस्याएं हैं जिन्हें हैंडल किया जा सकता है। जब कोई exception उठाई जाती है, तो एक ऑब्जेक्ट बनाया जाता है जिसे exception object कहा जाता है। इन ऑब्जेक्ट्स में exception पर डेटा होता है, जैसे उसका नाम और प्रोग्राम में जहां इसे उठाया गया था।

अब आप Java में exception handling की मूल बातें जानते हैं, हम try...catch स्टेटमेंट का उपयोग करके उन exceptions को संभालना शुरू कर सकते हैं।

Try Catch Java

try...catch स्टेटमेंट का उपयोग Java में exceptions को संभालने के लिए किया जाता है। Exceptions को संभालने के लिए, कोड के एक ब्लॉक को try_catch ब्लॉक के भीतर रखा जाएगा।

जब कोई प्रोग्राम try_catch ब्लॉक का सामना करता है, तो try ब्लॉक के भीतर कोड निष्पादित किया जाएगा। यदि कोई exception उठाई जाती है, तो catch ब्लॉक के भीतर कोड तुरंत निष्पादित किया जाएगा। catch ब्लॉक्स को try..catch स्टेटमेंट में try ब्लॉक के बाद आना चाहिए।

यहाँ Java में try_catch स्टेटमेंट के लिए सिंटैक्स है:

try { // Code to run } catch (ExceptionType error) { // Code to run when exception is raised } finally { // Code to run even if exception is not raised }

हम इस ट्यूटोरियल में बाद में finally ब्लॉक के बारे में बात करेंगे, लेकिन फिलहाल, हम try_catch ब्लॉक पर ध्यान केंद्रित करेंगे। आइए एक उदाहरण के माध्यम से चलते हैं कि यह कोड ब्लॉक कैसे काम करता है।

Try Catch Java Example

मान लीजिए हम एक प्रोग्राम बना रहे हैं जो studentNames नामक array का उपयोग करता है। हम अपने studentNames array में पांचवें नाम को कंसोल पर प्रिंट करना चाहते हैं। हालांकि, हमारी कक्षा में केवल छह छात्र हैं।

इसके परिणामस्वरूप हमारे कोड में एक त्रुटि उठाई जाएगी क्योंकि हम एक ऐसे मान को संदर्भित कर रहे होंगे जो मौजूद नहीं है। यहाँ एक उदाहरण प्रोग्राम है जो इंडेक्स मान 5 वाले छात्र का नाम प्रिंट करने का प्रयास करता है (हमारी कक्षा में छठा छात्र, क्योंकि इंडेक्स मान 0 से शुरू होते हैं):

class Main { public static void main(String[] args) { String[] studentNames = {"Linda", "Greg", "Ron", "Graham", "Alexis"}; System.out.println(studentNames[5]); }

हमारा कोड निम्न आउटपुट देता है:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 5 out of bounds for length 5 at Main.main(Main.java:4)

जैसा कि आप देख सकते हैं, हमारे प्रोग्राम ने एक लंबी त्रुटि लौटाई क्योंकि हमने एक ऐसे मान को संदर्भित करने का प्रयास किया जो मौजूद नहीं है।

अब, आइए अपनी त्रुटियों को संभालने के लिए try...catch ब्लॉक का उपयोग करने का प्रयास करें। जब कोई त्रुटि आती है, तो हमारे प्रोग्राम को "There was an error" प्रिंट करना चाहिए, ताकि हमें पता चले कि कुछ गलत हो गया है। हम इस कार्य को पूरा करने के लिए निम्न कोड का उपयोग कर सकते हैं:

class Main { public static void main(String[] args) { try { String[] studentNames = {"Linda", "Greg", "Ron", "Graham", "Alexis"}; System.out.println(studentNames[5]); } catch (Exception e) { System.out.println("There was an error."); } }

अब जब हम अपना कोड चलाते हैं, तो निम्न प्रतिक्रिया लौटाई जाती है:

There was an error.

इसके अतिरिक्त, हम कई catch ब्लॉक्स निर्दिष्ट कर सकते हैं। यह उपयोगी है क्योंकि यह हमें प्रत्येक exception को अलग-अलग तरीके से संभालने की अनुमति देता है।

ऊपर के उदाहरण में, ArrayIndexOutOfBoundsException उठाई गई थी। यदि हम उस त्रुटि के लिए विशेष रूप से परीक्षण करना चाहते थे, कंसोल पर एक कस्टम संदेश प्रिंट करना चाहते थे, और अन्य सामान्य exceptions के लिए परीक्षण करना चाहते थे, तो हम कई catch स्टेटमेंट्स का उपयोग कर सकते थे।

यहाँ एक प्रोग्राम का उदाहरण है जो ArrayIndexOutOfBoundsException और सामान्य Exception दोनों के लिए परीक्षण करता है और प्रत्येक त्रुटि के लिए कस्टम प्रतिक्रियाएं रखता है:

class Main { public static void main(String[] args) { try { String[] studentNames = {"Linda", "Greg", "Ron", "Graham", "Alexis"}; System.out.println(studentNames[5]); } catch (ArrayIndexOutOfBoundsException e) { System.out.println("ArrayIndexOutOfBoundsException was raised."); } catch (Exception e) { System.out.println("There was an error."); } } }

अब, जब हम अपना प्रोग्राम चलाते हैं, तो कंसोल पर निम्न संदेश प्रिंट होता है:

ArrayIndexOutOfBoundsException was raised.

यह प्रतिक्रिया लौटाई जाती है क्योंकि हमारे प्रोग्राम में ArrayIndexOutOfBoundsException उठाई गई थी। लेकिन यदि कोई अन्य त्रुटि हुई, तो Exception e catch ब्लॉक में कोड चलेगा, और निम्न संदेश कंसोल पर प्रिंट होगा:

There was an error.

Finally Statement

finally स्टेटमेंट का उपयोग try...catch ब्लॉक के निष्पादित होने के बाद कोड के एक ब्लॉक को निष्पादित करने के लिए किया जाता है। finally ब्लॉक वैकल्पिक है, और यदि यह परिभाषित है तो हमेशा निष्पादित होता है। यदि कोई exception नहीं उठाई जाती, तो finally ब्लॉक try ब्लॉक के बाद निष्पादित होता है; यदि कोई exception उठाई जाती है, तो यह catch ब्लॉक के बाद निष्पादित होता है।

आइए finally स्टेटमेंट को क्रिया में समझाने के लिए ऊपर से अपने उदाहरण का उपयोग करें। मान लीजिए हम कंसोल पर एक संदेश प्रिंट करना चाहते हैं जिसमें लिखा हो This block has finished executing। यह बताने के लिए कि try_catch स्टेटमेंट पूरा हो गया है। हम निम्न कोड का उपयोग करने का प्रयास कर सकते हैं:

class Main { public static void main(String[] args) { try { String[] studentNames = {"Linda", "Greg", "Ron", "Graham", "Alexis"}; System.out.println(studentNames[5]); } catch (ArrayIndexOutOfBoundsException e) { System.out.println("ArrayIndexOutOfBoundsException was raised."); } catch (Exception e) { System.out.println("There was an error."); } finally { System.out.println("This block of code has finished executing."); } } }

जब हम अपना कोड चलाते हैं, तो निम्न प्रतिक्रिया लौटाई जाती है:

ArrayIndexOutOfBoundsException was raised.
This block of code has finished executing.

जैसा कि आप देख सकते हैं, हमारे कोड ने ArrayIndexOutOfBoundsException exception उठाई, जैसा कि हमने ऊपर देखा, और इसने संबंधित catch ब्लॉक के भीतर कोड निष्पादित किया।

हमारे ऊपर के उदाहरण में, हमने एक finally स्टेटमेंट निर्दिष्ट किया। इसलिए, हमारे कोड ने catch ब्लॉक के निष्पादित होने के बाद This block of code has finished executing संदेश प्रिंट किया।

निष्कर्ष

try...catch ब्लॉक का उपयोग Java में exceptions को ग्रेसफुली संभालने के लिए किया जाता है। try ब्लॉक के भीतर कोड निष्पादित होता है, और यदि कोई exception उठाई जाती है, तो संबंधित catch ब्लॉक के भीतर कोड निष्पादित होता है। इसके अलावा, finally स्टेटमेंट का उपयोग try...catch ब्लॉक के निष्पादित होने के बाद कोड निष्पादित करने के लिए किया जाता है, भले ही कोई exception नहीं उठाई गई हो।

इस ट्यूटोरियल ने चर्चा की कि Java में exceptions को संभालने के लिए try...catch ब्लॉक का उपयोग कैसे करें और Java finally ब्लॉक का उपयोग कैसे करें। हमने try...catch ब्लॉक और finally स्टेटमेंट दोनों का उपयोग करके त्रुटियों को संभालने का एक उदाहरण भी देखा।

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

  1. जावास्क्रिप्ट में try और catch स्टेटमेंट्स को उदाहरण सहित समझाएं जावास्क्रिप्ट में try और catch स्टेटमेंट्स को उदाहरण सहित समझाएं

    परिचय try स्टेटमेंट हमें कोड के एक ब्लॉक को निष्पादित करने और एरर्स के लिए टेस्ट करने की अनुमति देता है। उन एरर्स को catch स्टेटमेंट द्वारा पकड़ा और हैंडल किया जाता है। वैकल्पिक finally ब्लॉक हमेशा निष्पादित होता है। उदाहरण निम्न कोड जावास्क्रिप्ट में try और catch स्टेटमेंट के लिए है: <!DOCTYP

  1. Eclipse के साथ JavaFX सेटअप Eclipse के साथ JavaFX सेटअप

    Eclipse में JavaFX सेटअप करने के लिए, सबसे पहले सुनिश्चित करें कि आपके सिस्टम में Eclipse और Java सफलतापूर्वक इंस्टॉल हैं। Maven डिपेंडेंसी Maven डिपेंडेंसी का उपयोग करके JavaFX वातावरण सेट करने के लिए, Eclipse में एक Java प्रोजेक्ट बनाएं और इसे नीचे दिखाए अनुसार Maven प्रोजेक्ट में बदलें - फिर

  1. Java 8 Streams में मास्टरी: व्यावहारिक कोड उदाहरण और टिप्स Java 8 Streams में मास्टरी: व्यावहारिक कोड उदाहरण और टिप्स

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