sys.exc_info() 返回元组(类型、值、回溯)。 所以 sys.exc_info()[2] 是我们的回溯对象。
sys.exc_info()[2]
为什么它不使用此代码捕获异常回溯:
import sys try: 1/0 except ZeroDivisionError: print sys.exc_info()[2].tb_frame.f_back
tb_frame和f_back用法已在此处解释: Frame Objects
你看 None 因为 没有外框 。您直接执行此操作,因此当前帧是最后一帧。为了演示这一点,我创建了一个 demo.py :
None
demo.py
caller.py :
caller.py
import demo
现在看看区别:
$ python demo.py None $ python caller.py <frame object at 0x10bc34c20>
呼叫者.py ),你看不到 .
呼叫者.py