किसी भी प्रोग्रामिंग भाषा में हम ऐसी स्थिति पाते हैं जहां अपवाद उठाए जाते हैं। पायथन में कई इनबिल्ट अपवाद हैंडलिंग तंत्र हैं। ऐसी त्रुटियां हैं जिन्हें इस अपवाद नामों से नियंत्रित किया जाता है। पायथन में एक ब्लॉक भी होता है जिसे अंत में कहा जाता है जिसे अपवाद को हैंडल किया गया है या नहीं, इस पर ध्यान दिए बिना निष्पादित किया जाता है।
सिंटैक्स
try: # main python Code.... except: # It is optional block # Code to handle exception finally: # This Code that is always executed
उदाहरण
नीचे दिए गए कोड में हम NameError नामक एक अपवाद देखते हैं। यहां हम एक कोड बनाते हैं जो अघोषित चर को संदर्भित करता है। भले ही अपवाद को संभाला जाता है, फिर भी कोड "आखिरकार" ब्लॉक में चलता है। "आखिरकार" ब्लॉक में कोड भी निष्पादित हो जाता है।
try:
var1 = 'Tutorials'
# NameError is raised
print(var2)
# Handle the exception
except NameError:
print("variable is not found in local or global scope.")
finally:
# Regardless of exception generation,
# this block is always executed
print('finally block code here') आउटपुट
उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -
variable is not found in local or global scope. finally block code here
अपवाद हैंडलिंग के बिना
मान लीजिए कि हम अपवाद को हैंडल न करने के लिए कोड डिज़ाइन करते हैं। फिर भी अंत में ब्लॉक बिना क्रिया के अपवादों के लिए कोड निष्पादित करेगा।
उदाहरण
try:
var1 = 'Tutorials'
# NameError is raised
print(var2)
# No exception handling
finally:
# Regardless of exception generation,
# this block is always executed
print('finally block code here') आउटपुट
उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -
finally block code here Traceback (most recent call last): File "xxx.py", line 4, in print(var2) NameError: name 'var2' is not defined