在项目越来越复杂的时候,使用的包越多,代码越厚重,在coding出错时如果只看默认的堆栈错误的话,不容易直接看到引发错误的地方。
所以,使用traceback的时候就到了,它可以直接帮你定位到错误的位置,明确告诉你那个函数的第几行。
使用traceback
traceback是python内建包,不需要任何下载,只需要在你的代码的头部import即可。
我们来使用一个最简单的代码来看看,如何使用以及它做了什么
import traceback
def devision(x1, x2):
return x1 / x2
def run():
devision(3, 0)
if __name__ == "__main__":
try:
run()
except:
traceback.print_exc()
这里一共有两个函数:
- devision:除法计算,x1代表被除数,x2代表除数。
- run:运行函数,里面调用了devision函数,并给devision传递了两个参数。
根据我们的常识,0作为除数是会报错的,没错,这显而易见。但是当程序的调用过程复杂的时候,你就很难确定到底是哪里出了错。
然后我们看一下打印结果:
![](https://img.haomeiwen.com/i2779961/8a3574afff2a2920.png)
最后一行,”ZeroDivisionError“清楚的告诉了你错误的原因,再往上一行,可以清晰的看到是”use_traceback.py“的第9行出错了。
这样,我们就会意识到自己的代码哪里错误了。
网友评论