पायथन में अपवाद हैंडलिंग का उपयोग करने के लिए, हमें पहले क्लॉज को छोड़कर सभी को पकड़ने की जरूरत है।
पायथन अपवादों को पकड़ने के लिए "कोशिश" और "छोड़कर" कीवर्ड प्रदान करता है। "कोशिश" ब्लॉक कोड स्टेटमेंट द्वारा स्टेटमेंट निष्पादित किया जाएगा। हालांकि, यदि कोई अपवाद होता है, तो शेष "कोशिश" कोड निष्पादित नहीं किया जाएगा और अपवाद खंड को निष्पादित किया जाएगा।
try: some_statements_here except: exception_handling
आइए उपरोक्त सिंटैक्स को एक बहुत ही सरल उदाहरण के साथ देखें -
try: print("Hello, World!") except: print("This is an error message!")
आउटपुट
Hello, World!
ऊपर एक बहुत ही सरल उदाहरण है, आइए उपरोक्त अवधारणा को दूसरे उदाहरण से समझते हैं -
import sys List = ['abc', 0, 2, 4] for item in List: try: print("The List Item is", item) r = 1/int(item) break except: print("Oops!",sys.exc_info()[0],"occured.") print('\n') print("Next Item from the List is: ") print() print("The reciprocal of",item,"is",r)
आउटपुट
The List Item is abc Oops! <class 'ValueError'> occured. Next Item from the List is: The List Item is 0 Oops! <class 'ZeroDivisionError'> occured. Next Item from the List is: The List Item is 2 The reciprocal of 2 is 0.5
उपरोक्त कार्यक्रम में, लूप तब तक चलते हैं जब तक हमें (उपयोगकर्ता इनपुट के रूप में) एक पूर्णांक प्राप्त नहीं होता है जिसमें एक वैध पारस्परिक होता है। कोड जो अपवाद को बढ़ाने का कारण बनता है उसे try ब्लॉक में रखा जाता है।
यदि कुछ अपवाद होता है, तो इसे छोड़कर ब्लॉक द्वारा पकड़ा जाएगा। हम विभिन्न अपवाद त्रुटियों के साथ उपरोक्त कार्यक्रम का परीक्षण कर सकते हैं। नीचे कुछ सामान्य अपवाद त्रुटियां दी गई हैं -
-
IOError
यदि हम फ़ाइल नहीं खोल सकते हैं तो उठाया गया।
-
आयात त्रुटि
मॉड्यूल गुम होने की स्थिति में उठाया गया।
-
ValueError
यह तब हुआ जब हम तर्क को सही प्रकार के साथ पास करते हैं लेकिन एक अंतर्निहित ऑपरेटर या फ़ंक्शन का अनुचित मान।
-
कीबोर्ड इंटरप्ट
जब भी उपयोगकर्ता इंटरप्ट कुंजी को हिट करता है (आमतौर पर नियंत्रण-सी)
-
ईओएफत्रुटि
अपवाद तब उठाया गया जब बिल्ट-इन फ़ंक्शंस बिना किसी डेटा को पढ़े एंड-ऑफ़-फाइल कंडीशन (EOF) से टकरा गए।