Python:
एरर्स को हैंडल करना
कैसे करें:
# मूल try-except ब्लॉक
try:
# जोखिम भरा कोड
number = int(input("कृपया एक संख्या दर्ज करें: "))
except ValueError:
# त्रुटि को संभालना
print("वह कोई संख्या नहीं है!")
# एक से अधिक अपवादों का निर्दिष्ट करना
try:
# कोड जो विभिन्न अपवादों को उत्पन्न कर सकता है
result = 10 / int(input("कृपया एक विभाजक दर्ज करें: "))
except ZeroDivisionError:
print("ओह! शून्य से विभाजित नहीं कर सकते।")
except ValueError:
print("मुझे एक संख्या चाहिए, दोस्त।")
# else और finally का उपयोग करना
try:
number = int(input("वर्ग निकालने के लिए एक संख्या दर्ज करें: "))
except ValueError:
print("मैंने कहा एक संख्या चाहिए!")
else:
# कोई त्रुटि नहीं हुई
print("आपकी संख्या का वर्ग है:", number**2)
finally:
# हमेशा निष्पादित होता है
print("इसको आज़माने के लिए धन्यवाद!")
पहले ब्लॉक के लिए एक अवैध संख्या दर्ज करने पर नमूना आउटपुट:
कृपया एक संख्या दर्ज करें: हेलो
वह कोई संख्या नहीं है!
गहराई में जानें
प्रोग्रामिंग के आरंभ से ही, त्रुटि संभालना महत्वपूर्ण रहा है। प्रारंभिक तरीके सारल्य थे, जैसे हर जोखिम भरे संचालन से पहले स्थितियों की जांच करना। पायथन की try-except
वाक्यविन्यास सी++ और जावा जैसी पुरानी भाषाओं में अपवाद संभालने की विरासत से आया है, जिसने प्रक्रिया को सरल बना दिया है।
जब आप किसी ब्लॉक को try
करते हैं, पायथन किसी भी अपवाद के लिए देखता है। यदि कोई त्रुटि आती है, तो except
ब्लॉक उसे पकड़ लेता है। आप जिन अपवादों को पकड़ना चाहते हैं उनके बारे में विशिष्ट हो सकते हैं या एक साधारण except
से सभी को पकड़ सकते हैं। हालांकि, विशिष्टता पहले बेहतर दृष्टिकोण है – यह सटीक है, न कि सब कुछ पकड़ने वाली जाल।
else
और finally
इस अवधारणा में अतिरिक्त हैं। else
ब्लॉक तब चलता है जब try ब्लॉक में कोई त्रुटि नहीं होती। finally
वह विश्वसनीय दोस्त है जो कुछ भी हो इसे चलाता है – सोचिए सफाई के क्रियाकलापों के बारे में।
विकल्प? ज़रूर हैं। कुछ भाषाएं अपवादों के बजाय रिटर्न कोड का उपयोग करती हैं। आप संसाधनों को संभालने के लिए with
स्टेटमेंट्स या डेवलपमेंट करते समय स्थितियों की जाँच करने वाले assertions
से भी सामना कर सकते हैं। लेकिन जब हम मजबूत त्रुटि-संभालने की रणनीतियों की बात करते हैं, तो त्रुटि-संभालने की try-catch मॉडल अपनी पढ़ने में आसानी और संरचना के लिए प्रमुख उभरता है।
भी देखें
इस विषय में और गहराई से उतरने के लिए यहां कुछ अच्छे अतिरिक्त संसाधन हैं:
- पायथन की आधिकारिक प्रलेखन त्रुटियों और अपवादों पर: Python Docs – Errors and Exceptions
- इस विषय पर रियल पायथन की मार्गदर्शिका: Real Python - The try/except/else/finally block
- त्रुटि संभालने के सर्वोत्तम अभ्यासों पर एक विचारशील चर्चा: Stack Overflow – मैं अपवादों को उचित रूप से कैसे अनदेखा करूँ?