使用traceback调试

在项目越来越复杂的时候,使用的包越多,代码越厚重,在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作为除数是会报错的,没错,这显而易见。但是当程序的调用过程复杂的时候,你就很难确定到底是哪里出了错。
然后我们看一下打印结果:


image.png

最后一行,”ZeroDivisionError“清楚的告诉了你错误的原因,再往上一行,可以清晰的看到是”use_traceback.py“的第9行出错了。
这样,我们就会意识到自己的代码哪里错误了。

你可能感兴趣的:(使用traceback调试)