在Python中捕获一般异常,然后使用isinstance()
来检测特定类型的异常,以便对其进行适当处理,这合理吗?
我正在使用dnspython工具包,它有一系列异常,比如超时、NXDOMAIN响应等。这些异常是dns.exception.DNSException
的子类,所以我想知道捕获DNSException
是否合理,或者说是pythonic,然后用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"
我是新来的Python,所以要温柔!
从dns.resolver可以导入一些异常。 (未经测试的代码)
这就是multiple
except
子句的用途:注意子句的顺序:将执行第一个匹配的子句,因此将对超类的检查移到末尾。
相关问题 更多 >
编程相关推荐