下面是我的代码,经过简化以说明问题:
import sys
def my_excepthook(exc_type, exc_value, exc_traceback):
print(exc_traceback.format_exception())
sys.excepthook = my_excepthook
x = 5/0
Python在处理ZeroDivisionError时遇到另一个异常,因此本文的标题。
看看我的调试器,它肯定是一个回溯对象。它有四个属性:
<- tb_frame:帧/gh>
- tb_lasti: int
- tb_lineno: int <
- tb_next:回溯/gh>
但没有方法。为什么?
<标题>编辑:
阅读traceback模块python docs时,我误以为我在阅读traceback对象python docs。
如何格式化traceback对象
我认为您将回溯对象与包含format_exception
函数的traceback
包混淆了。
import sys
import traceback
def my_excepthook(exc_type, exc_value, exc_traceback):
print(traceback.format_exception(exc_type, exc_value, exc_traceback))
sys.excepthook = my_excepthook
x = 5/0