第十六章:开发工具-cgitb:详细的traceback报告-启用详细的traceback

16.6.2 启用详细的traceback
尽管基本traceback包括了足够多的信息来发现错误,不过启用cgitb将给出更多详细信息。cgitb将sys.excepthook替换为另一个函数,他能提供更丰富的traceback。

import cgitb

cgitb.enable(format='text')

def func2(a,divisor):
    return a / divisor


def func1(a,b):
    c = b - 5
    return func2(a,c)

func1(1,5)

这个例子生成的错误报告比原先要丰富的多。会列出栈的每一帧,并提供以下信息:
源文件的完整路径,而不只是基名。
栈中各个函数的参数值。
错误路径中当前行周围的几行源代码上下文。
导致错误的表达式中的变量值。
由于能够访问错误栈中涉及的变量,这有助于程序员找到出现在栈中更高位置的逻辑错误,而不只是生成具体异常的那一行代码。
在这里插入图片描述
对于这个存在ZeroDivisionError异常的代码,显然是因为func1()中c值的计算带来的问题,而不是func2()中在哪里使用这个值。
输出的最后还包括了异常对象的完整细节(除了message以外可能还有其他属性,对调试会很有用),以及traceback转储的原始形式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值