किसी भी प्रोग्रामिंग भाषा में हमें एक ऐसी स्थिति मिलती है जहां अपवाद उठाए जाते हैं। Python में कई इनबिल्ट अपवाद प्रबंधन तंत्र हैं। कुछ त्रुटियां हैं जो इन अपवाद नामों द्वारा संभाली जाती हैं। Python में finally नामक एक ब्लॉक भी होता है जो इस बात की परवाह किए बिना निष्पादित होता है कि अपवाद संभाला गया है या नहीं।
सिंटैक्स
try: # मुख्य Python कोड.... except: # यह वैकल्पिक ब्लॉक है # अपवाद संभालने का कोड finally: # यह कोड हमेशा निष्पादित होता है
उदाहरण
नीचे दिए गए कोड में हम NameError नामक एक अपवाद देखते हैं। यहां हम एक कोड बनाते हैं जो अघोषित वेरिएबल को संदर्भित करता है। भले ही अपवाद संभाला गया हो, कोड अभी भी "finally" ब्लॉक में चलता है। "finally" ब्लॉक में कोड भी निष्पादित होता है।
try: var1 = 'Tutorials' # NameError उठाया जाता है print(var2) # अपवाद संभालें except NameError: print("वेरिएबल स्थानीय या वैश्विक स्कोप में नहीं मिला।") finally: # अपवाद उत्पन्न होने की परवाह किए बिना, # यह ब्लॉक हमेशा निष्पादित होता है print('finally block code here')आउटपुट
उपरोक्त कोड चलाने पर हमें निम्नलिखित परिणाम मिलता है -
वेरिएबल स्थानीय या वैश्विक स्कोप में नहीं मिला। finally block code here
अपवाद प्रबंधन के बिना
मान लीजिए हम कोड को अपवाद न संभालने के लिए डिज़ाइन करते हैं। फिर भी finally ब्लॉक अनहैंडल्ड अपवाद के लिए कोड निष्पादित करेगा।
उदाहरण
try: var1 = 'Tutorials' # NameError उठाया जाता है print(var2) # कोई अपवाद प्रबंधन नहीं finally: # अपवाद उत्पन्न होने की परवाह किए बिना, # यह ब्लॉक हमेशा निष्पादित होता है 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