जब भी कोड असामान्य रूप से व्यवहार करता है और उसका निष्पादन अचानक बंद हो जाता है, तो पायथन त्रुटियों और अपवादों को फेंक देता है। पायथन हमें ऐसे परिदृश्यों को संभालने के लिए उपकरण प्रदान करता है, जो अपवाद से निपटने की विधि की मदद से कोशिश-छोड़कर बयानों का उपयोग करता है। कुछ मानक अपवाद जो पाए जाते हैं उनमें अंकगणित त्रुटि, अभिकथन त्रुटि, विशेषता त्रुटि, आयात त्रुटि, आदि शामिल हैं।
उपयोगकर्ता-परिभाषित अपवाद वर्ग बनाना
यहां हमने एक नया अपवाद वर्ग यानी User_Error बनाया है। अपवादों को प्रत्यक्ष या अप्रत्यक्ष रूप से अंतर्निहित अपवाद वर्ग से प्राप्त करने की आवश्यकता है। आइए दिए गए उदाहरण को देखें जिसमें दिए गए वर्ग के भीतर एक कंस्ट्रक्टर और डिस्प्ले विधि शामिल है।
उदाहरण
# class MyError is extended from super class Exception
class User_Error(Exception):
# Constructor method
def __init__(self, value):
self.value = value
# __str__ display function
def __str__(self):
return(repr(self.value))
try:
raise(User_Error("User defined error"))
# Value of Exception is stored in error
except User_Error as error:
print('A New Exception occured:',error.value) आउटपुट
A New Exception occured: User defined error
उपयोगकर्ता-परिभाषित अपवाद वर्ग (एकाधिक वंशानुक्रम) बनाना
व्युत्पन्न वर्ग अपवाद तब बनाए जाते हैं जब एक एकल मॉड्यूल कई अलग-अलग त्रुटियों को संभालता है। यहां हमने उस मॉड्यूल द्वारा परिभाषित अपवादों के लिए एक आधार वर्ग बनाया है। विभिन्न प्रकार की त्रुटियों को संभालने के लिए यह आधार वर्ग विभिन्न उपयोगकर्ता-परिभाषित वर्ग द्वारा विरासत में मिला है।
उदाहरण
# define Python user-defined exceptions
class Error(Exception):
"""Base class for other exceptions"""
pass
class Dividebyzero(Error):
"""Raised when the input value is zero"""
pass
try:
i_num = int(input("Enter a number: "))
if i_num ==0:
raise Dividebyzero
except Dividebyzero:
print("Input value is zero, try again!")
print() आउटपुट
Enter a number: Input value is zero, try again!
उपयोगकर्ता द्वारा परिभाषित अपवाद वर्ग (मानक अपवाद) बनाना
रनटाइम त्रुटि एक अंतर्निहित वर्ग है जिसे तब उठाया जाता है जब कोई उत्पन्न त्रुटि उल्लिखित श्रेणियों में नहीं आती है। नीचे दिया गया प्रोग्राम बताता है कि रनटाइम त्रुटि को बेस क्लास के रूप में और उपयोगकर्ता-परिभाषित त्रुटि को व्युत्पन्न वर्ग के रूप में कैसे उपयोग किया जाए।
उदाहरण
# User defined error
class Usererror(RuntimeError):
def __init__(self, arg):
self.args = arg
try:
raise Usererror("userError")
except Usererror as e:
print (e.args) आउटपुट
('u', 's', 'e', 'r', 'E', 'r', 'r', 'o', 'r') निष्कर्ष
इस लेख में, हमने सीखा कि हम पायथन 3.x में उपयोगकर्ता द्वारा परिभाषित अपवादों को कैसे घोषित और कार्यान्वित करते हैं। या पहले।