पायथन त्रुटियां और अंतर्निहित अपवाद

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

वीडियो: पायथन एक्सेप्शन हैंडलिंग

एक प्रोग्राम लिखते समय हम कुछ गलतियाँ कर सकते हैं, जब हम इसे चलाने का प्रयास करते हैं तो त्रुटियां होती हैं। जैसे ही यह एक अनहोनी त्रुटि का सामना करता है एक अजगर कार्यक्रम समाप्त हो जाता है। इन त्रुटियों को मोटे तौर पर दो वर्गों में वर्गीकृत किया जा सकता है:

  1. सिंटैक्स त्रुटियां
  2. तार्किक त्रुटियाँ (अपवाद)

पायथन सिंटैक्स त्रुटियां

भाषा की उचित संरचना (सिंटैक्स) का पालन नहीं करने के कारण हुई त्रुटि को सिंटैक्स त्रुटि या पार्सिंग त्रुटि कहा जाता है ।

आइए एक उदाहरण देखें:

 >>> if a < 3 File "", line 1 if a < 3 SyntaxError: invalid syntax

जैसा कि उदाहरण में दिखाया गया है, एक तीर इंगित करता है कि पार्सर सिंटैक्स त्रुटि में कहाँ भाग गया।

हम यहाँ देख सकते हैं कि विवरण में एक उपनिवेश :गायब है if

पायथन लॉजिकल एरर्स (अपवाद)

त्रुटियां जो रनटाइम पर होती हैं (सिंटैक्स टेस्ट पास करने के बाद) को अपवाद या तार्किक त्रुटियां कहा जाता है

उदाहरण के लिए, वे तब होते हैं जब हम एक फ़ाइल खोलने की कोशिश करते हैं (पढ़ने के लिए) जो मौजूद नहीं है ( FileNotFoundError), एक संख्या को शून्य से विभाजित करने का प्रयास करें ( ZeroDivisionError), या मौजूद नहीं होने वाले मॉड्यूल को आयात करने का प्रयास करें ( ImportError)।

जब भी इस प्रकार की रनटाइम त्रुटियां होती हैं, तो पायथन अपवाद वस्तु बनाता है। यदि ठीक से संभाला नहीं गया है, तो यह उस त्रुटि के साथ-साथ उस त्रुटि के बारे में कुछ विवरण के साथ एक ट्रेसबैक प्रिंट करता है।

आइए देखें कि पायथन इन त्रुटियों का इलाज कैसे करता है:

 >>> 1 / 0 Traceback (most recent call last): File "", line 301, in runcode File "", line 1, in ZeroDivisionError: division by zero >>> open("imaginary.txt") Traceback (most recent call last): File "", line 301, in runcode File "", line 1, in FileNotFoundError: (Errno 2) No such file or directory: 'imaginary.txt'

पायथन में निर्मित अपवाद

अवैध संचालन अपवाद उठा सकते हैं। पाइथन में बहुत सारे बिल्ट-इन अपवाद हैं जो कि संबंधित त्रुटियों के होने पर उठाए जाते हैं। हम बिल्ट-इन local()फ़ंक्शन का उपयोग करके सभी अंतर्निहित अपवाद देख सकते हैं:

 print(dir(locals()('__builtins__')))

locals()('__builtins__')अंतर्निहित अपवादों, कार्यों और विशेषताओं का एक मॉड्यूल लौटाएगा। dirहमें इन विशेषताओं को तार के रूप में सूचीबद्ध करने की अनुमति देता है।

पायथन प्रोग्रामिंग में कुछ सामान्य निर्मित अपवादों के साथ-साथ यह त्रुटि है कि उनके कारण नीचे सूचीबद्ध हैं:

अपवाद त्रुटि का कारण
AssertionError assertबयान विफल होने पर उठाया गया ।
AttributeError विशेषता असाइनमेंट या संदर्भ विफल होने पर उठाया गया।
EOFError उठाया जब input()फ़ंक्शन फ़ाइल की स्थिति को समाप्त करता है।
FloatingPointError एक अस्थायी बिंदु ऑपरेशन विफल होने पर उठाया गया।
GeneratorExit जब एक जनरेटर close()विधि कहा जाता है उठाएँ ।
ImportError आयातित मॉड्यूल नहीं मिलने पर उठाया गया।
IndexError उठाया जब एक अनुक्रम का सूचकांक सीमा से बाहर है।
KeyError एक शब्दकोश में एक कुंजी नहीं मिलने पर उठाया।
KeyboardInterrupt उपयोगकर्ता द्वारा बाधा कुंजी ( Ctrl+Cया Delete) को हिट करने पर उठाया गया ।
MemoryError उठाया जब एक ऑपरेशन स्मृति से बाहर चलाता है।
NameError उठाया जब एक चर स्थानीय या वैश्विक दायरे में नहीं मिला है।
NotImplementedError अमूर्त विधियों द्वारा उठाया गया।
OSError उठाया जब सिस्टम ऑपरेशन सिस्टम से संबंधित त्रुटि का कारण बनता है।
OverflowError उठाया जब एक अंकगणितीय ऑपरेशन का परिणाम प्रतिनिधित्व करने के लिए बहुत बड़ा है।
ReferenceError उठाया जब एक कमजोर संदर्भ प्रॉक्सी का उपयोग किया जाता है एक कचरा एकत्र संदर्भ का उपयोग करने के लिए।
RuntimeError जब कोई त्रुटि किसी अन्य श्रेणी में नहीं आती है, तो उठाया गया।
StopIteration next()यह इंगित करने के लिए फ़ंक्शन द्वारा उठाया गया कि पुनरावृत्त द्वारा लौटाए जाने के लिए कोई और आइटम नहीं है।
SyntaxError सिंटैक्स त्रुटि का सामना होने पर पार्सर द्वारा उठाया गया।
IndentationError गलत इंडेंटेशन होने पर उठाया।
TabError उठाया जब इंडेंटेशन में असंगत टैब और रिक्त स्थान होते हैं।
SystemError उठाया जब दुभाषिया आंतरिक त्रुटि का पता लगाता है।
SystemExit sys.exit()कार्य द्वारा उठाया गया ।
TypeError कोई फ़ंक्शन या ऑपरेशन गलत प्रकार की वस्तु पर लागू होने पर उठाया गया।
UnboundLocalError उठाया जब एक फ़ंक्शन या विधि में एक स्थानीय चर के लिए एक संदर्भ बनाया जाता है, लेकिन कोई भी मूल्य उस चर के लिए बाध्य नहीं किया गया है।
UnicodeError जब एक यूनिकोड-संबंधित एन्कोडिंग या डिकोडिंग त्रुटि उत्पन्न होती है।
UnicodeEncodeError एन्कोडिंग के दौरान एक यूनिकोड से संबंधित त्रुटि होने पर उठाया जाता है।
UnicodeDecodeError जब डिकोडिंग के दौरान एक यूनिकोड-संबंधी त्रुटि उत्पन्न होती है।
UnicodeTranslateError अनुवाद के दौरान एक यूनिकोड से संबंधित त्रुटि होने पर उठाया गया।
ValueError उठाया जब एक फ़ंक्शन को सही प्रकार का लेकिन अनुचित मूल्य का तर्क मिलता है।
ZeroDivisionError उठाया जब डिवीजन या modulo ऑपरेशन के दूसरे ऑपरेंड शून्य है।

यदि आवश्यक हो, तो हम पायथन में अपने स्वयं के अपवादों को भी परिभाषित कर सकते हैं। उनके बारे में अधिक जानने के लिए, पायथन उपयोगकर्ता-परिभाषित अपवाद पर जाएँ।

हम अजगर में इन बिल्ट-इन और उपयोगकर्ता-निर्धारित अपवादों से प्रबंधित कर सकते try, exceptऔर finallyबयान। उनके बारे में अधिक जानने के लिए, पायथन प्रयास और सिवाय बयानों को देखें।

दिलचस्प लेख...