¿Es razonable detectar en Python una excepción genérica y luego usar isinstance()
para detectar el tipo específico de excepción a fin de manejarla adecuadamente?¿Es razonable en Python verificar un tipo específico de excepción usando isinstance?
Estoy jugando con el kit de herramientas dnspython en este momento, que tiene una serie de excepciones para cosas como un tiempo de espera, una respuesta NXDOMAIN, etc. Estas excepciones son subclases de dns.exception.DNSException
, por lo que me pregunto si es razonable, o pythonic, para atrapar DNSException
luego verifique una excepción específica con isinstance()
.
p. Ej.
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"
Soy nuevo en Python así que se gentil!
Gracias Sven ... que se ve mucho mejor. – Vortura