【发布时间】:2016-01-19 18:08:37
【问题描述】:
据我了解,在 Python 2 中,如果我处理异常,将其捕获为对象,并希望将回溯作为字符串做一些事情:
try:
...
except Exception as e:
tb = get_traceback(e)
store_in_database(tb)
没有将e 作为参数的get_traceback 函数。有import traceback; traceback.format_exc(),但这并没有将e 作为参数。这似乎暗示此信息根本没有存储在 e 中。
但在 Python > 3.2 中,异常对象将有一个 __traceback__ 属性来存储回溯。
我有兴趣知道:
在较低级别,此信息存储在哪里? (我知道这可能是一个实现细节)。
为什么直到 Python 3 才存储在
e中?
【问题讨论】:
-
您可能想阅读PEP-3134
标签: python-2.7 python-3.x exception-handling