पायथन में कुछ सामान्य अपवाद हैं। ये अपवाद आमतौर पर विभिन्न कार्यक्रमों में उठाए जाते हैं। ये प्रोग्रामर द्वारा स्पष्ट रूप से उठा सकते हैं, या पायथन दुभाषिया इस प्रकार के अपवादों को स्पष्ट रूप से उठा सकता है। इनमें से कुछ अपवाद हैं -
अपवाद अभिकथन त्रुटि
जब कोई मुखर कथन विफल हो जाता है, तो AssertionError बढ़ सकता है। पायथन में कुछ हैं, हम अपने कोड में कुछ मुखर कथन भी सेट कर सकते हैं। मुखर कथन हमेशा सत्य होना चाहिए। यदि स्थिति विफल हो जाती है, तो यह AssertionError उठाएगी।
उदाहरण कोड
class MyClass: def __init__(self, x): self.x = x assert self.x > 50 myObj = MyClass(5)
आउटपुट
--------------------------------------------------------------------------- AssertionError Traceback (most recent call last) <ipython-input-21-71785acdf821> in <module>() 4 assert self.x > 50 5 ----> 6 myObj = MyClass(5) <ipython-input-21-71785acdf821> in __init__(self, x) 2 def __init__(self, x): 3 self.x = x ----> 4 assert self.x > 50 5 6 myObj = MyClass(5) AssertionError:
अपवाद विशेषता त्रुटि
विशेषता त्रुटि तब बढ़ सकती है, जब हम किसी वर्ग की किसी विशेषता तक पहुँचने का प्रयास करेंगे, लेकिन यह उसमें मौजूद नहीं है।
उदाहरण कोड
class point: def __init__(self, x=0, y=0): self.x = x self.y = y def getpoint(self): print('x= ' + str(self.x)) print('y= ' + str(self.y)) print('z= ' + str(self.z)) pt = point(10, 20) pt.getpoint()
आउटपुट
x= 10 y= 20 --------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-15-f64eb52b2192> in <module>() 10 11 pt = point(10, 20) ---> 12 pt.getpoint() <ipython-input-15-f64eb52b2192> in getpoint(self) 7 print('x= ' + str(self.x)) 8 print('y= ' + str(self.y)) ----> 9 print('z= ' + str(self.z)) 10 11 pt = point(10, 20) AttributeError: 'point' object has no attribute 'z'
अपवाद आयात त्रुटि
आयात त्रुटि तब हो सकती है जब आयात कथन कुछ मॉड्यूल आयात करने में कुछ समस्या का सामना कर रहा है। इसे तब भी उठाया जा सकता है, जब किसी स्टेटमेंट से पैकेज का नाम सही हो, लेकिन निर्दिष्ट नाम के रूप में कोई मॉड्यूल नहीं मिला हो।
उदाहरण कोड
from math import abcd def __init__(self, x=0, y=0):
आउटपुट
--------------------------------------------------------------------------- ImportError Traceback (most recent call last) <ipython-input-23-ff4519a07c77> in <module>() ----> 1 from math import abcd ImportError: cannot import name 'abcd'
अपवाद मॉड्यूलNotFoundError
यह ImportError का एक उपवर्ग है। जब कोई मॉड्यूल स्थित नहीं होता है, तो यह त्रुटि बढ़ सकती है। इसे तब भी उठाया जा सकता है जब कोई नहीं sys.modules में पाया जाता है।
उदाहरण कोड
import abcd
आउटपुट
--------------------------------------------------------------------------- ModuleNotFoundError Traceback (most recent call last) <ipython-input-24-7b45aaa048eb> in <module>() ----> 1 import abcd ModuleNotFoundError: No module named 'abcd'
अपवाद अनुक्रमणिकात्रुटि
अनुक्रमणिका त्रुटि तब बढ़ सकती है जब किसी अनुक्रम की सबस्क्रिप्ट (सूची, टपल, सेट आदि) सीमा से बाहर हो।
उदाहरण कोड
myList = [10, 20, 30, 40] print(str(myList[5]))
आउटपुट
--------------------------------------------------------------------------- IndexError Traceback (most recent call last) <ipython-input-29-a86bd85b04c9> in <module>() 1 myList = [10, 20, 30, 40] ----> 2 print(str(myList[5])) IndexError: list index out of range
अपवाद पुनरावर्तन त्रुटि
RecursionError एक रनटाइम त्रुटि है। जब रिकर्सन की अधिकतम गहराई पार हो जाती है, तो इसे बढ़ा दिया जाएगा।
उदाहरण कोड
def myFunction(): myFunction() myFunction()
आउटपुट
--------------------------------------------------------------------------- RecursionError Traceback (most recent call last) <ipython-input-39-8a59e0fb982f> in <module>() 2 myFunction() 3 ----> 4 myFunction() <ipython-input-39-8a59e0fb982f> in myFunction() 1 def myFunction(): ----> 2 myFunction() 3 4 myFunction() ... last 1 frames repeated, from the frame below ... <ipython-input-39-8a59e0fb982f> in myFunction() 1 def myFunction(): ----> 2 myFunction() 3 4 myFunction() RecursionError: maximum recursion depth exceeded
अपवाद स्टॉपइटरेशन
पायथन में, हम अगले () नामक इनबिल्ट विधि द्वारा StopIteration त्रुटि प्राप्त कर सकते हैं। जब एक पुनरावर्तक के पास कोई और तत्व नहीं होता है, तो अगली () विधि StopIteration त्रुटि को बढ़ा देगी।
उदाहरण कोड
myList = [10, 20, 30, 40] myIter = iter(myList) while True: print(next(myIter))
आउटपुट
10 20 30 40 --------------------------------------------------------------------------- StopIteration Traceback (most recent call last) <ipython-input-42-e608e2162645> in <module>() 2 myIter = iter(myList) 3 while True: ----> 4 print(next(myIter)) StopIteration:
अपवाद इंडेंटेशन त्रुटि
जब पायथन कोड में कुछ अमान्य इंडेंटेशन होते हैं, तो यह इस तरह की त्रुटियों को बढ़ाएगा। यह सिंटैक्स त्रुटि . इनहेरिट करता है अजगर का वर्ग।
उदाहरण कोड
for i in range(10): print("The value of i: " + str(i))
आउटपुट
File "<ipython-input-44-d436d50bbdc8>", line 2 print("The value of i: " + str(i)) ^ IndentationError: expected an indented block
अपवाद प्रकार त्रुटि
TypeError तब हो सकता है जब अनुपयुक्त प्रकार के ऑब्जेक्ट पर कोई ऑपरेशन किया जाता है। उदाहरण के लिए, यदि हम सरणी अनुक्रमणिका में एक फ़्लोटिंग पॉइंट नंबर प्रदान करते हैं, तो यह एक TypeError लौटाएगा।
उदाहरण कोड
muList = [10, 20, 30, 40] print(myList[1.25])
आउटपुट
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-46-e0a2a05cd4d4> in <module>() 1 muList = [10, 20, 30, 40] ----> 2 print(myList[1.25]) TypeError: list indices must be integers or slices, not float
अपवाद ZeroDivisionError
जब ऐसी स्थिति होती है जहां एक विभाजन समस्या के लिए भाजक 0 (शून्य) होता है, तो यह ZeroDivisionError उठाएगा।
उदाहरण कोड
print(5/0)
आउटपुट
--------------------------------------------------------------------------- ZeroDivisionError Traceback (most recent call last) <ipython-input-48-fad870a50e27> in <module>() ----> 1 print(5/0) ZeroDivisionError: division by zero