Genel bir özel durum yakalamak için Python'da mantıklı mıdır, daha sonra uygun şekilde ele almak için belirli bir özel durum türünü algılamak için isinstance()
kullanın?Python'da isinstance kullanarak belirli bir özel durum olup olmadığını kontrol etmek mantıklı mıdır?
Şu anda bir zaman aşımı, bir NXDOMAIN yanıtı, vb. Gibi durumlar için bir dizi özelliğe sahip olan dnspython araç setiyle uğraşıyorum. Bu istisnalar dns.exception.DNSException
alt sınıflarıdır, bu yüzden mantıklı olup olmadığını merak ediyorum. veya pythonic, DNSException
'u yakalamak için isinstance()
ile özel bir istisna olup olmadığını kontrol edin.
örn.
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"
Python'a yeni geliyorum, nazik ol!
try:
answers = dns.resolver.query(args.host)
except dns.resolver.NXDOMAIN:
print "No such domain %s" % args.host
except dns.resolver.Timeout:
print "Timed out while resolving %s" % args.host
except dns.exception.DNSException:
print "Unhandled exception"
maddeleri sırasına konusunda dikkatli olun: ilk eşleşen fıkra alınacaktır, bu nedenle sonuna kadar üst sınıfı için onay hareket için birden except
hükümler vardır ne
Teşekkürler Sven ... bu çok daha hoş görünüyor. – Vortura