Python अपवाद प्रबंधन: try, catch, finally और raise [उदाहरण]

अपवाद प्रबंधन क्या है? Python?

अपवाद एक त्रुटि है जो किसी प्रोग्राम के निष्पादन के समय होती है। हालाँकि, प्रोग्राम चलाते समय, Python एक अपवाद उत्पन्न करता है जिसे आपके प्रोग्राम को क्रैश होने से बचाने के लिए संभाला जाना चाहिए। Python भाषा में, अपवाद त्रुटियों पर स्वचालित रूप से ट्रिगर होते हैं, या उन्हें आपके कोड द्वारा ट्रिगर और इंटरसेप्ट किया जा सकता है।

अपवाद यह दर्शाता है कि, हालांकि घटना घटित हो सकती है, लेकिन इस प्रकार की घटना बहुत कम होती है। जब विधि अपवाद को संभालने में सक्षम नहीं होती है, तो उसे उसके कॉलर फ़ंक्शन में फेंक दिया जाता है। अंततः, जब अपवाद को मुख्य फ़ंक्शन से बाहर फेंक दिया जाता है, तो प्रोग्राम अचानक समाप्त हो जाता है।

अपवाद के सामान्य उदाहरण

  • शून्य से विभाजन
  • ऐसी फ़ाइल तक पहुँचना जो अस्तित्व में नहीं है।
  • दो असंगत प्रकारों का जोड़
  • किसी अनुक्रम के अस्तित्वहीन सूचकांक तक पहुंचने का प्रयास करना
  • डिस्कनेक्टेड डेटाबेस सर्वर से तालिका को हटाना.
  • एटीएम से उपलब्ध राशि से अधिक राशि निकालना

आपको अपवादों का उपयोग क्यों करना चाहिए?

अपवादों का उपयोग करने के कारण यहां दिए गए हैं Python:

  • अपवाद प्रबंधन आपको त्रुटि-प्रबंधन कोड को सामान्य कोड से अलग करने की अनुमति देता है।
  • एक अपवाद है Python वस्तु जो एक त्रुटि का प्रतिनिधित्व करता है.
  • कोड टिप्पणियों की तरह, अपवाद आपको यह याद दिलाने में मदद करते हैं कि प्रोग्राम क्या अपेक्षा करता है।
  • यह कोड को स्पष्ट करता है और पठनीयता बढ़ाता है।
  • यह आपको परिणामों को प्रेरित करने की अनुमति देता है क्योंकि त्रुटि-प्रबंधन एक ही स्थान पर और एक ही तरीके से होता है।
  • अपवाद त्रुटि संदेशों को संभालने के लिए एक सुविधाजनक विधि है।
  • In Python, आप raise exception विधि का उपयोग करके प्रोग्राम में अपवाद उठा सकते हैं।
  • अपवाद उठाने से आपको वर्तमान कोड निष्पादन को तोड़ने में मदद मिलती है और अपवाद को तब तक अपेक्षित स्थिति में वापस लौटाता है जब तक कि उसे संभाला नहीं जाता।
  • उन घटकों के लिए अपवादों का प्रसंस्करण करना जो उन्हें सीधे संभाल नहीं सकते।

अपवाद के नियम

यहां कुछ आवश्यक नियम दिए गए हैं Python एक्सेप्शन हेंडलिंग:

  • अपवाद क्लास ऑब्जेक्ट होने चाहिए
  • वर्ग अपवादों के लिए, आप try कथन का उपयोग except खंड के साथ कर सकते हैं जिसमें किसी विशेष वर्ग का उल्लेख होता है।
  • भले ही कोई कथन या अभिव्यक्ति वाक्य रचना की दृष्टि से सही हो, फिर भी उसे निष्पादित करने का प्रयास करने पर त्रुटि प्रदर्शित हो सकती है।
  • निष्पादन के दौरान पाई गई त्रुटियों को अपवाद कहा जाता है, और वे बिना शर्त घातक नहीं होती हैं।

Python अपवाद हैंडलिंग तंत्र

अपवाद प्रबंधन निम्नलिखित 5 कीवर्ड द्वारा प्रबंधित किया जाता है:

  1. कोशिश
  2. पकड़
  3. आखिरकार
  4. फेंकना

Python प्रयास कथन

एक try कथन में try कीवर्ड, उसके बाद एक कोलन (:) और कोड का एक सेट शामिल होता है जिसमें अपवाद हो सकते हैं। इसमें एक या अधिक क्लॉज़ होते हैं।

Try कथन के निष्पादन के दौरान, यदि कोई अपवाद उत्पन्न नहीं होता है, तो इंटरप्रेटर उस विशिष्ट Try कथन के लिए अपवाद संचालकों को अनदेखा कर देता है।

यदि किसी ट्राई सूट में कोई अपवाद उत्पन्न होता है, तो ट्राई सूट समाप्त हो जाता है और प्रोग्राम नियंत्रण, ट्राई सूट के बाद मेल खाने वाले एक्सेप्ट हैंडलर को स्थानांतरित हो जाता है।

Syntax:
try:
statement(s)

पकड़ कथन

कैच ब्लॉक एक बार में एक तर्क लेता है, जो अपवाद का वह प्रकार है जिसे पकड़ने की संभावना है। ये तर्क एक विशिष्ट प्रकार के अपवाद से लेकर अपवादों की कैच-ऑल श्रेणी तक हो सकते हैं।

कैच ब्लॉक के नियम:

  • आप catch कीवर्ड का उपयोग करके एक कैच ब्लॉक परिभाषित कर सकते हैं
  • कैच अपवाद पैरामीटर हमेशा कोष्ठक में संलग्न होता है
  • यह हमेशा उस अपवाद के प्रकार को दर्शाता है जिसे catch ब्लॉक हैंडल करता है।
  • अपवाद हैंडलिंग कोड दो {} घुंघराले ब्रेसिज़ के बीच लिखा जाता है।
  • आप एक ही try ब्लॉक के अंदर अनेक catch ब्लॉक रख सकते हैं।
  • आप catch ब्लॉक का उपयोग केवल try ब्लॉक के बाद ही कर सकते हैं।
  • सभी कैच ब्लॉक को उपवर्ग से सुपरक्लास अपवाद तक क्रमबद्ध किया जाना चाहिए।

उदाहरण:

try
}
catch (ArrayIndexOutOfBoundsException e) {
System.err.printin("Caught first " + e.getMessage()); } catch (IOException e) {
System.err.printin("Caught second " + e.getMessage());
}

अंत में वक्तव्य Python

फाइनली ब्लॉक हमेशा निष्पादित होता है, चाहे कोई अपवाद फेंका गया हो या नहीं। फाइनल कीवर्ड आपको कोड का एक ब्लॉक बनाने की अनुमति देता है जो ट्राई-कैच ब्लॉक का अनुसरण करता है।

अंत में, क्लॉज़ वैकल्पिक है। इसका उद्देश्य क्लीन-अप क्रियाओं को परिभाषित करना है जिन्हें सभी स्थितियों में निष्पादित किया जाना चाहिए।

try:
    raise KeyboardInterrupt
finally:
    print 'welcome, world!'
Output
Welcome, world!
KeyboardInterrupt

अंत में, try कथन से पहले क्लॉज निष्पादित किया जाता है।

वक्तव्य बढ़ाएँ Python

raise कथन एक तर्क निर्दिष्ट करता है जो अपवाद ऑब्जेक्ट को आरंभ करता है। यहाँ, अपवाद नाम के बाद एक अल्पविराम आता है, और अल्पविराम के बाद तर्क या तर्क का टपल आता है।

सिंटेक्स:

raise [Exception [, args [, traceback]]]

इस सिंटैक्स में, तर्क वैकल्पिक होता है, और निष्पादन के समय, अपवाद तर्क मान हमेशा शून्य होता है।
उदाहरण:
A Python अपवाद कोई भी मान हो सकता है जैसे स्ट्रिंग, क्लास, संख्या या ऑब्जेक्ट। इनमें से अधिकांश अपवाद जो उठाए जाते हैं Python कोर एक तर्क के साथ कक्षाएं हैं जो वर्ग का एक उदाहरण है।

महत्त्वपूर्ण Python त्रुटियाँ

त्रुटि प्रकार विवरण
अंकगणितत्रुटि ArithmeticError सभी अंकगणितीय अपवादों के लिए आधार वर्ग के रूप में कार्य करता है। इसे अंकगणितीय संक्रियाओं में त्रुटियों के लिए उठाया जाता है।
आयातत्रुटि ImportError तब आता है जब आप किसी ऐसे मॉड्यूल को आयात करने का प्रयास कर रहे होते हैं जो मौजूद नहीं होता है। इस तरह का अपवाद तब होता है जब आपने मॉड्यूल नाम में टाइपिंग की गलती की हो या मॉड्यूल जो मानक पथ में मौजूद नहीं है।
अनुक्रमणिका जब आप किसी अनुक्रम को संदर्भित करने का प्रयास करते हैं जो सीमा से बाहर है तो IndexError उत्पन्न होती है।
कुंजी त्रुटि जब शब्दकोश में कोई विशिष्ट कुंजी नहीं मिलती, तो KeyError अपवाद उत्पन्न होता है।
नामत्रुटि जब कोड में किसी ऐसे नाम का उल्लेख किया जाता है जो स्थानीय या वैश्विक नामस्थान में कभी मौजूद नहीं होता, तो NameError उत्पन्न होता है।
मान मान त्रुटि तब उत्पन्न होती है जब कोई फ़ंक्शन या अंतर्निहित ऑपरेशन एक तर्क प्राप्त करता है जो सही प्रकार का हो सकता है लेकिन उसका उपयुक्त मान नहीं होता है।
EOFत्रुटि इस प्रकार की त्रुटि तब उत्पन्न होती है जब कोई अंतर्निहित फ़ंक्शन (input() या raw_input()) बिना कोई डेटा पढ़े EOF स्थिति तक पहुंच जाता है।
जीरोडिविजनत्रुटि इस प्रकार की त्रुटि तब उत्पन्न होती है जब सभी संख्यात्मक प्रकारों के लिए शून्य से विभाजन या मॉड्यूल होता है।
आईओत्रुटि- इस प्रकार की त्रुटि तब उत्पन्न होती है जब इनपुट/आउटपुट ऑपरेशन विफल हो जाता है।
वक्य रचना त्रुटि जब कोई त्रुटि होती है तो वाक्यविन्यास त्रुटियाँ उत्पन्न होती हैं Python वाक्य - विन्यास।
इंडेंटेशनत्रुटि यह त्रुटि तब उत्पन्न होती है जब इंडेंटेशन ठीक से परिभाषित नहीं किया गया हो

अन्य महत्वपूर्ण Python अपवाद

अपवाद विवरण
अंकगणित अंकगणितीय त्रुटि, जैसे शून्य से भाग देना।
ArraylndexOutOfBoundsException सारणी सूचकांक सीमा से बाहर है.
ऐरेस्टोरएक्सेप्शन असाइनमेंट आपको असंगत प्रकार के सरणी तत्व में मदद करता है।
क्लासकास्टएक्सेप्शन अमान्य कास्ट
MlegalMonitorStateException अवैध मॉनिटर ऑपरेशन, जैसे अनलॉक थ्रेड पर प्रतीक्षा करना।
एमलीगलस्टेटएक्सेप्शन वातावरण या अनुप्रयोग ग़लत स्थिति में है.
वर्ग अपवाद में नहीं मिला कक्षा नहीं मिली.
क्लोन समर्थित अपवाद किसी ऐसे ऑब्जेक्ट को क्लोन करने का प्रयास करें जो Cloneable इंटरफ़ेस को कार्यान्वित नहीं करता है।
अवैध पहुँच अपवाद किसी कक्षा तक पहुंच अस्वीकृत कर दी गई है।
इन्स्टेन्शियेशनएक्सेप्शन यह तब होता है जब आप किसी इंटरफ़ेस या अमूर्त वर्ग का ऑब्जेक्ट बनाने का प्रयास करते हैं।
क्लोन समर्थित अपवाद किसी ऐसे ऑब्जेक्ट को क्लोन करने का प्रयास करें जो इंटरफ़ेस को कार्यान्वित नहीं करता है।

त्रुटि बनाम अपवाद

त्रुटि अपवाद
सभी त्रुटियाँ Python अनियंत्रित प्रकार के हैं। अपवादों में चेक और अनचेक दोनों प्रकार शामिल हैं।
रन टाइम पर त्रुटियाँ होती हैं जो कम्पाइलर को ज्ञात नहीं होतीं। अपवादों को try-catch ब्लॉकों की सहायता से संभालकर पुनर्प्राप्त किया जा सकता है।
त्रुटियाँ अधिकांशतः उस वातावरण के कारण होती हैं जिसमें अनुप्रयोग चल रहा होता है। अनुप्रयोग स्वयं अपवाद उत्पन्न करता है।
उदाहरण:
बाहर स्मृति त्रुटि
उदाहरण:
जाँचे गए अपवाद, SQL अपवाद, NullPointerException, आदि।

सारांश

  • अपवाद एक त्रुटि है जो किसी प्रोग्राम के निष्पादन के दौरान घटित होती है।
  • अपवाद यह दर्शाता है कि, यद्यपि घटना घटित हो सकती है, परन्तु इस प्रकार की घटना कभी-कभार ही घटित होती है।
  • अपवाद के सामान्य उदाहरण हैं 1) शून्य से विभाजन, 2) ऐसी फ़ाइल तक पहुँचना जो अस्तित्व में नहीं है, 3) दो असंगत प्रकारों का जोड़।
  • एक अपवाद है Python ऑब्जेक्ट जो एक त्रुटि का प्रतिनिधित्व करता है.
  • एक try कथन में try कीवर्ड, उसके बाद एक कोलन (:) और कोड का एक सेट शामिल होता है जिसमें अपवाद हो सकते हैं। इसमें एक या अधिक क्लॉज़ होते हैं।
  • कैच ब्लॉक एक समय में एक तर्क लेता है, जो अपवाद का वह प्रकार होता है जिसे पकड़ने की संभावना होती है।
  • raise कथन एक तर्क निर्दिष्ट करता है जो अपवाद ऑब्जेक्ट को आरंभीकृत करता है।
  • अंततः, ब्लॉक सदैव निष्पादित होता है, चाहे कोई अपवाद उत्पन्न हो या न हो।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: