अन्य हाई-लेवल लैंग्वेजेज की तरह, पायथन में भी एक्सेप्शन्स होते हैं। जब कोई समस्या होती है, तो यह एक एक्सेप्शन उठाता है। ZeroDivisionError, AssertionError आदि जैसे विभिन्न प्रकार के एक्सेप्शन्स होते हैं। सभी एक्सेप्शन क्लासेस BaseException क्लास से डिराइव्ड होती हैं।
कोड बिल्ट-इन एक्सेप्शन्स चला सकता है, या हम कोड में इन एक्सेप्शन्स को भी उठा सकते हैं। यूजर Exception क्लास से या Exception क्लास के किसी अन्य चाइल्ड क्लास से अपना खुद का एक्सेप्शन डिराइव कर सकता है।
BaseException सभी अन्य एक्सेप्शन्स का बेस क्लास है। यूजर-डिफाइंड क्लासेस को सीधे इस क्लास से डिराइव नहीं किया जा सकता; यूजर-डिफाइंड क्लास डिराइव करने के लिए हमें Exception क्लास का उपयोग करना पड़ता है।
पायथन एक्सेप्शन हायरार्की निम्नलिखित है:
- BaseException
- Exception
- ArithmeticError
- FloatingPointError
- OverflowError
- ZeroDivisionError
- AssertionError
- AttributeError
- BufferError
- EOFError
- ImportError
- ModuleNotFoundError
- LookupError
- IndexError
- KeyError
- MemoryError
- NameError
- UnboundLocalError
- OSError
- BlockingIOError
- ChildProcessError
- ConnectionError
- BrokenPipeError
- ConnectionAbortedError
- ConnectionRefusedError
- ConnectionResetError
- FileExistsError
- FileNotFoundError
- InterruptedError
- IsADirectoryError
- NotADirectoryError
- PermissionError
- ProcessLookupError
- TimeoutError
- ReferenceError
- RuntimeError
- NotImplementedError
- RecursionError
- StopIteration
- StopAsyncIteration
- SyntaxError
- IndentationError
- TabError
- IndentationError
- SystemError
- TypeError
- ValueError
- UnicodeError
- UnicodeDecodeError
- UnicodeEncodeError
- UnicodeTranslateError
- UnicodeError
- Warning
- BytesWarning
- DeprecationWarning
- FutureWarning
- ImportWarning
- PendingDeprecationWarning
- ResourceWarning
- RuntimeWarning
- SyntaxWarning
- UnicodeWarning
- UserWarning
- GeneratorExit
- KeyboardInterrupt
- SystemExit
- ArithmeticError
समस्या - इस समस्या में कर्मचारियों की एक क्लास है। शर्त यह है कि कर्मचारी की आयु 18 से अधिक होनी चाहिए।
हमें एक यूजर-डिफाइंड एक्सेप्शन क्लास बनानी चाहिए, जो Exception क्लास की चाइल्ड क्लास हो।
उदाहरण कोड
class LowAgeError(Exception):
def __init__(self):
pass
def __str__(self):
return 'The age must be greater than 18 years'
class Employee:
def __init__(self, name, age):
self.name = name
if age < 18:
raise LowAgeError
else:
self.age = age
def display(self):
print('The name of the employee: ' + self.name + ', Age: ' + str(self.age) + ' Years')
try:
e1 = Employee('Subhas', 25)
e1.display()
e2 = Employee('Anupam', 12)
e1.display()
except LowAgeError as e:
print('Error Occurred: ' + str(e))आउटपुट
The name of the employee: Subhas, Age: 25 Years Error Occurred: The age must be greater than 18 years