【发布时间】:2013-08-13 03:37:58
【问题描述】:
如何获取 Python 中引发的异常的名称?
例如,
try:
foo = bar
except Exception as exception:
name_of_exception = ???
assert name_of_exception == 'NameError'
print "Failed with exception [%s]" % name_of_exception
例如,我正在捕获多个(或所有)异常,并希望在错误消息中打印异常的名称。
【问题讨论】:
-
为什么你认为你需要这个?为什么不从更具体的异常(例如
except NameError:)开始? -
我有几个场景想要捕获所有异常(或它们的列表),并希望在错误消息中打印出异常的名称。
-
您可能想查看标准库的
traceback模块,该模块的函数可以很好地格式化异常和回溯。 -
@delnan 当你测试一个函数是否按照程序引发异常时会出现这种情况
-
我需要这样的东西来干掉一些代码:我调用的方法可以引发几个异常,每个异常都用自己的
except语句处理,但日志条目非常相似在每种情况下。