Python में अपवाद हैंडलिंग: पूरी गाइड
एरर सॉफ्टवेयर डेवलपमेंट का एक अटूट हिस्सा हैं। सबसे अच्छा कोड भी अप्रत्याशित परिस्थितियों का सामना कर सकता है: फ़ाइल न मिलना, शून्य से भाग देना, नेटवर्क कनेक्शन की समस्या, आदि। ऐसी स्थितियों में प्रोग्राम को क्रैश होने से बचाने के लिए, Python try-except-finally जैसी शक्तिशाली अपवाद हैंडलिंग सुविधाएँ प्रदान करता है।
Python में try-except-finally कैसे काम करता है?
try-except-finally संरचना आपको प्रोग्राम चलने के दौरान उत्पन्न होने वाले अपवादों को पकड़ने और उनका सही तरीके से समाधान करने की अनुमति देती है।
सामान्य सिंटैक्स:
try:
# वह कोड जो अपवाद उत्पन्न कर सकता है
except SomeException:
# अपवाद को संभालने का कोड
finally:
# वह कोड जो हर स्थिति में चलेगा
ब्लॉकों की व्याख्या:
try: इस ब्लॉक में मुख्य कोड रखा जाता है जिसमें अपवाद उत्पन्न हो सकता है।except: यहाँ बताया जाता है किtryब्लॉक में अपवाद आने पर क्या करना है। आप किसी विशेष प्रकार के अपवाद (SomeException) को पकड़ने के लिए निर्दिष्ट कर सकते हैं।finally:finallyब्लॉक हमेशा चलता है, चाहेtryब्लॉक में अपवाद उत्पन्न हुआ हो या नहीं। इसका उपयोग आमतौर पर फ़ाइलें बंद करना, नेटवर्क कनेक्शन या डेटाबेस कनेक्शन जैसे संसाधनों को मुक्त करने के लिए किया जाता है।
try-except-finally का उदाहरण
try:
number = int(input("एक पूर्णांक संख्या दर्ज करें: "))
result = 10 / number
print(f"परिणाम: {result}")
except ZeroDivisionError:
print("एरर: शून्य से भाग देना मान्य नहीं है।")
except ValueError:
print("एरर: कृपया एक सही पूर्णांक संख्या दर्ज करें।")
finally:
print("प्रोग्राम समाप्त हो रहा है।")
यह कोड कैसे काम करता है:
- प्रोग्राम उपयोगकर्ता से एक पूर्णांक संख्या इनपुट करने के लिए कहता है।
- यदि उपयोगकर्ता
0दर्ज करता है, तोZeroDivisionErrorअपवाद उत्पन्न होता है, और संबंधितexceptब्लॉक चलता है। - यदि उपयोगकर्ता कोई गैर-पूर्णांक संख्या दर्ज करता है, तो
ValueErrorअपवाद उत्पन्न होता है, और संबंधितexceptब्लॉक चलता है। finallyब्लॉक हर स्थिति में चलता है, प्रोग्राम समाप्ति का संदेश दिखाता है।
finally ब्लॉक की आवश्यकता क्यों है?
finally ब्लॉक यह सुनिश्चित करता है कि महत्वपूर्ण कोड अपवाद उत्पन्न होने या न होने पर भी चले। इसके कुछ सामान्य उपयोग इस प्रकार हैं:
-
फ़ाइलें बंद करना:
file = open("data.txt", "r") try: content = file.read() # फ़ाइल की सामग्री को प्रोसेस करें finally: file.close() # फ़ाइल को बंद करने की गारंटी -
संसाधन मुक्त करना: नेटवर्क कनेक्शन, डेटाबेस कनेक्शन और अन्य संसाधनों को मुक्त करना जिन्हें उपयोग के बाद बंद या मुक्त किया जाना चाहिए।
-
लॉगिंग पूरी करना या अस्थायी डेटा साफ़ करना:
finallyब्लॉक का उपयोग लॉग फ़ाइल में लिखना पूरा करने या प्रोग्राम के दौरान बनाई गई अस्थायी फ़ाइलों को हटाने के लिए किया जा सकता है।
कई अपवादों को संभालना
एक ही try ब्लॉक में कई अलग-अलग प्रकार के अपवाद उत्पन्न हो सकते हैं। Python इस स्थिति को संभालने के कई तरीके प्रदान करता है:
कई except ब्लॉक का उपयोग करना
try:
number = int(input("एक संख्या दर्ज करें: "))
result = 100 / number
print(resu