try:
connection = manager.connect("I2Cx")
except Exception as e:
print repr(e)
…你至少会得到异常类名。
更好的替代方法是使用多个except块,并且只“捕获”要处理的异常。。。
try:
connection = manager.connect("I2Cx")
except KeyError as e:
print 'I got a KeyError - reason "%s"' % str(e)
except IndexError as e:
print 'I got an IndexError - reason "%s"' % str(e)
捕捉所有异常都有合理的理由,但如果你这样做了,你几乎应该总是重新提出它们。。。
try:
connection = manager.connect("I2Cx")
except KeyError as e:
print 'I got a KeyError - reason "%s"' % str(e)
except:
print 'I got another exception, but I should re-raise'
raise
您应该查阅引发异常的任何库的文档,以了解如何从异常中获取错误消息。
或者,调试这种东西的一个好方法是说:
要查看
e
有什么属性,您可能会发现它有一个message
属性或类似的属性。如果它在没有消息的情况下引发keyrerror,那么它不会打印任何内容。如果你这样做。。。
…你至少会得到异常类名。
更好的替代方法是使用多个
except
块,并且只“捕获”要处理的异常。。。捕捉所有异常都有合理的理由,但如果你这样做了,你几乎应该总是重新提出它们。。。
…因为如果用户按CTRL-C,您可能不想处理
KeyboardInterrupt
;如果try
-块调用sys.exit()
,您可能也不想处理SystemExit
。我使用的是Python 3.6,在Exception和e之间使用逗号不起作用。我需要使用以下语法(只是为任何想知道的人)
相关问题 更多 >
编程相关推荐