Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

उदाहरण के साथ पायथन में उपयोगकर्ता द्वारा परिभाषित अपवाद

जब भी कोड असामान्य रूप से व्यवहार करता है और उसका निष्पादन अचानक बंद हो जाता है, तो पायथन त्रुटियों और अपवादों को फेंक देता है। पायथन हमें ऐसे परिदृश्यों को संभालने के लिए उपकरण प्रदान करता है, जो अपवाद से निपटने की विधि की मदद से कोशिश-छोड़कर बयानों का उपयोग करता है। कुछ मानक अपवाद जो पाए जाते हैं उनमें अंकगणित त्रुटि, अभिकथन त्रुटि, विशेषता त्रुटि, आयात त्रुटि, आदि शामिल हैं।

उपयोगकर्ता-परिभाषित अपवाद वर्ग बनाना

यहां हमने एक नया अपवाद वर्ग यानी 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 में उपयोगकर्ता द्वारा परिभाषित अपवादों को कैसे घोषित और कार्यान्वित करते हैं। या पहले।


  1. पायथन में मेटाक्लास के साथ मेटा प्रोग्रामिंग

    मेटाप्रोग्रामिंग शब्द कंप्यूटर प्रोग्रामिंग को संदर्भित करता है जहां कंप्यूटर प्रोग्राम हेरफेर करने की कोशिश करते हैं या स्वयं का ज्ञान रखते हैं। पायथन मेटाक्लास नामक एक नए प्रकार के वर्ग के माध्यम से कक्षाओं के लिए मेटाप्रोग्रामिंग का समर्थन करता है। पायथन में मेटाक्लास के माध्यम से मेटा-प्रोग्राम

  1. Pry . में अपवादों के साथ कार्य करना

    यदि आप मेरे जैसे हैं, तो आप रेल कंसोल का बहुत उपयोग करते हैं। और अब तक मुझे लगता है कि हर कोई इस बात से सहमत है कि रेल कंसोल के लिए Pry सबसे अच्छी चीज है ... ठीक है, कभी भी। बिल्ट-इन टू प्राइ कुछ बहुत ही शानदार विशेषताएं हैं जो साधारण पुराने IRB की तुलना में अपवादों के साथ काम करना बहुत आसान बनाती

  1. रूबी में कस्टम अपवाद

    रूबी में अपने स्वयं के अपवाद बनाना आसान है। बस इन चरणों का पालन करें: 1. एक नई कक्षा बनाएं अपवाद वर्ग हैं, जैसे रूबी में बाकी सब कुछ! एक नए प्रकार का अपवाद बनाने के लिए, बस एक ऐसा वर्ग बनाएं जो StandardError या उसके किसी बच्चे से विरासत में मिला हो। class MyError < StandardError end raise MyErr