python

时间:2016-12-24 08:22:24

标签: python exception-handling traceback

我正在调试我的python脚本并遇到traceback对象,它出现在结果的第二个索引处,由sys.exc_info()函数返回。但是,我尝试了解与traceback对象相关的信息,但无处不在我在标准python库中链接到traceback module。然后,我尝试在traceback对象上执行dir(),这给了我一个属性列表。在该列表中,以下属性看起来很有趣: -

 1. tb_frame,
 2. tb_lasti,
 3. tb_lineno,
 4. tb_next

我知道tb_frame和tb_lineno,但其他属性表示什么?

为糟糕的英语道歉。提前谢谢。

1 个答案:

答案 0 :(得分:1)

由@vaultah指定的docpage中指定,

这些都是特殊的只读属性。 1. tb_next是堆栈跟踪中的下一级(朝向发生异常的帧),如果没有下一级,则为None; 2. tb_frame指向当前级别的执行帧; 3. tb_lineno给出发生异常的行号; 4. tb_lasti表示准确的指令。

注意: - 如果异常发生在没有匹配的except子句或finally子句的try语句中,则回溯中的行号和最后一条指令可能与其帧对象的行号不同。