Python में try, except, finally के साथ एरर हैंडलिंग
एरर को संभालना एक अच्छे और भरोसेमंद सॉफ्टवेयर को डेवलप करने का एक अहम हिस्सा है। अनुभवी डेवलपर्स भी प्रोग्राम चलाते समय एरर से अछूते नहीं हैं। ऐसी स्थितियों को एप्लिकेशन को पूरी तरह से क्रैश होने से बचाने के लिए, Python में एक्सेप्शन को संभालने के लिए शक्तिशाली टूल्स दिए गए हैं।
इस गाइड में, हम try, except और finally स्टेटमेंट्स का सही उपयोग करके एरर-प्रतिरोधी कोड बनाना सीखेंगे।
Python में एक्सेप्शन हैंडलिंग की मूल बातें
एरर हैंडलिंग क्या है?
Python में एरर हैंडलिंग का मतलब है प्रोग्राम चलने के दौरान आने वाले एक्सेप्शन को पकड़ना। एप्लिकेशन को अचानक बंद होने से बचाने के बजाय, सिस्टम समस्या को सही तरीके से संभालने के लिए कुछ कदम उठाता है।
एक्सेप्शन हैंडलिंग सिस्टम के मुख्य तत्व
Python में एरर हैंडलिंग सिस्टम तीन मुख्य ब्लॉक पर आधारित है:
- try — वह कोड ब्लॉक जहां एक्सेप्शन हो सकता है
- except — किसी खास प्रकार की एरर को संभालने के लिए ब्लॉक
- finally — कोड का वह ब्लॉक जो परिणाम चाहे जो भी हो, हमेशा चलता है
try-except-finally कंस्ट्रक्शन की बुनियादी संरचना
मुख्य कंस्ट्रक्शन का सिंटैक्स
try:
# वह कोड जो एक्सेप्शन पैदा कर सकता है
pass
except SpecificError:
# खास एरर को संभालने का कोड
pass
finally:
# वह कोड जो हर हाल में चलेगा
pass
बुनियादी संरचना का व्यावहारिक उपयोग
try:
user_input = input("एक संख्या दर्ज करें: ")
number = int(user_input)
print(f"आपने संख्या दर्ज की: {number}")
except ValueError:
print("एरर: कृपया एक सही संख्या दर्ज करें")
finally:
print("ऑपरेशन पूरा हुआ")
सही इनपुट देने पर प्रोग्राम दर्ज की गई संख्या दिखाएगा। गलत इनपुट देने पर एरर मैसेज दिखेगा। finally ब्लॉक हर स्थिति में चलेगा।
विभिन्न प्रकार के एक्सेप्शन को संभालना
एक साथ कई एरर को संभालना
Python कई except ब्लॉक के साथ विभिन्न प्रकार के एक्सेप्शन को संभालने की सुविधा देता है:
try:
dividend = 10
divisor = 0
result = dividend / divisor
except ZeroDivisionError:
print("शून्य से भाग देने की अनुमति नहीं है")
except ValueError:
print("गलत डेटा फॉर्मेट मिला")
except TypeError:
print("ऑपरेशन के लिए असंगत डेटा टाइप")
finally:
print("गणितीय ऑपरेशन की प्रक्रिया पूरी हुई")
finally ब्लॉक के बिना एरर हैंडलिंग
finally ब्लॉक अनिवार्य नहीं है। इसके बिना भी प्रोग्राम एक्सेप्शन को संभालकर आगे बढ़ सकता है:
try:
data_list = [1, 2, 3, 4, 5]
element = data_list[10] # मौजूद नहीं है ऐसे इंडेक्स तक पहुंचने की कोशिश
except IndexError:
print("लिस्ट की सीमा से बाहर इंडेक्स तक पहुंचने की कोशिश")
एक्सेप्शन के बारे में विस्तृत जानकारी प्राप्त करना
as कीवर्ड का उपयोग
एक्सेप्शन के बारे में विस्तृत जानकारी पाने के लिए as कीवर्ड का उपयोग किया जाता है:
try:
calculation = 15 / 0
except ZeroDivisionError as error:
print(f"एरर मिली: {error}")
print(f"एरर का प्रकार: {type(error).__name__}")
परिणाम:
एरर मिली: division by zero
एरर का प्रकार: ZeroDivisionError
सभी एक्सेप्शन को सामान्य रूप से संभालना
कुछ मामलों में किसी भी संभावित एक्सेप्शन को पकड़ना जरूरी होता है:
try:
potentially_risky_operation()
except Exception as error:
print(f"कोई एरर आई: {error}")