क्या पाइथन में सामान्य अपवाद पकड़ने के लिए उचित है, तो उचित तरीके से इसे संभालने के लिए विशिष्ट प्रकार के अपवाद का पता लगाने के लिए isinstance()
का उपयोग करें?क्या इंस्टीटेंस का उपयोग करके एक विशिष्ट प्रकार के अपवाद की जांच करने के लिए पायथन में उचित है?
मैं इस समय dnspython टूलकिट के साथ खेल रहा हूं, जिसमें टाइमआउट, एनएक्सडीओएन प्रतिक्रिया आदि जैसी चीजों के लिए अपवाद हैं। ये अपवाद dns.exception.DNSException
के उप-वर्ग हैं, इसलिए मुझे आश्चर्य है कि यह उचित है, या पाइथोनिक, DNSException
पकड़ने के लिए isinstance()
के साथ एक विशिष्ट अपवाद की जांच करें।
उदा।
try:
answers = dns.resolver.query(args.host)
except dns.exception.DNSException as e:
if isinstance(e, dns.resolver.NXDOMAIN):
print "No such domain %s" % args.host
elif isinstance(e, dns.resolver.Timeout):
print "Timed out while resolving %s" % args.host
else:
print "Unhandled exception"
मैं पाइथन के लिए नया हूं इसलिए नम्र रहो!
धन्यवाद स्वेन ... जो बहुत अच्छा दिखता है। उत्तर के साथ – Vortura