ऐसी कई स्थितियाँ होती हैं जब हम चाहते हैं कि हमारा प्रोग्राम यह विशिष्ट कार्य करे, भले ही वह पूरी तरह से चलता हो या कोई त्रुटि हो। अधिकतर किसी भी त्रुटि या अपवाद को पकड़ने के लिए, हम ब्लॉक को छोड़कर कोशिश करने के लिए उपयोग करते हैं।
"कोशिश" कथन बहुत उपयोगी वैकल्पिक खंड प्रदान करता है जो 'क्लीन-अप क्रियाओं' को परिभाषित करने के लिए है जिसे किसी भी परिस्थिति में निष्पादित किया जाना चाहिए। उदाहरण के लिए -
>>> कोशिश करें:सिंटेक्स त्रुटि बढ़ाएं अंत में:प्रिंट ("लर्निंग पायथन!") पायथन सीखना! ट्रेसबैक (सबसे हालिया कॉल अंतिम):फ़ाइल "", पंक्ति 2, <मॉड्यूल> में सिंटैक्स त्रुटि फ़ाइल बढ़ाएं " <स्ट्रिंग>", लाइन कोई नहीं सिंटैक्स त्रुटि:<कोई विवरण उपलब्ध नहीं है
अंतिम खंड निष्पादित होगा चाहे कुछ भी हो, हालांकि, अन्य खंड केवल तभी निष्पादित होता है जब कोई अपवाद नहीं उठाया गया था।
उदाहरण1 - नीचे दिए गए उदाहरण पर विचार करें, जहां सब कुछ ठीक दिखता है और बिना किसी अपवाद के फ़ाइल में लिखना (प्रोग्राम काम कर रहा है), निम्नलिखित आउटपुट देगा -
file =open('finally.txt', 'w')try:file.write("Testing1 2 3.") Print("Writing to file.") IOError को छोड़कर:Print("file to लिख नहीं सका ।") और:प्रिंट ("सफल लिखें।") अंत में:फ़ाइल। क्लोज़ () प्रिंट ("फ़ाइल बंद।")
उपरोक्त प्रोग्राम को चलाने पर मिलेगा -
फ़ाइल में लिखना.लिखना सफल.फ़ाइल बंद.
उदाहरण 2 - आइए एक फ़ाइल को केवल पढ़ने के लिए बनाकर एक अपवाद को बढ़ाने का प्रयास करें और उस पर लिखने का प्रयास करें, जिससे यह एक अपवाद उत्पन्न करे।
फ़ाइल =खुला ('अंत में। ।") और:प्रिंट ("सफल लिखें।") अंत में:फ़ाइल। क्लोज़ () प्रिंट ("फ़ाइल बंद।")
उपरोक्त प्रोग्राम एक आउटपुट देगा, कुछ इस तरह -
फ़ाइल में नहीं लिख सका.फ़ाइल बंद है.
यदि हमसे कोई त्रुटि होती है, लेकिन हमने इसे संभालने के लिए कोई भी क्लॉज को छोड़कर नहीं रखा है। ऐसे मामले में, सफाई कार्रवाई (अंत में ब्लॉक) पहले निष्पादित की जाएगी और फिर संकलक द्वारा त्रुटि उठाई जाएगी। आइए नीचे दिए गए उदाहरण से अवधारणा को समझते हैं -
उदाहरण
file =open('finally.txt', 'r')try:file.write(4) print("Writing to file.") सिर्फ IOError को छोड़कर:print("file to लिख नहीं सका।")else:प्रिंट ("सफल लिखें।") अंत में:फ़ाइल.क्लोज़ () प्रिंट ("फ़ाइल बंद हो गई।")
आउटपुट
फ़ाइल बंद। , int नहींतो ऊपर से, हम देख सकते हैं कि, अंत में, क्लॉज हमेशा निष्पादित होता है, भले ही कोई अपवाद हो या न हो।