优化你的异常输出,只需一行代码!

通过引入`traceback`模块,一行代码即可让异常输出变得精简高效。文章展示了未导入模块时冗余的错误信息,以及使用优化后的简洁错误堆栈,帮助开发者更快定位问题。
摘要由CSDN通过智能技术生成

一行代码优化输出的异常信息

pip install pretty-errors

写一个函数测试:

def divided_zero():
    for i in range(10, -1, -1):
        print(10/i)


divided_zero()

在没有import这个pretty-errors前,输出的错误信息有些冗余:

Traceback (most recent call last):
  File "c:\Users\HUAWEI\.vscode\extensions\ms-python.python-2019.11.50794\pythonFiles\ptvsd_launcher.py", line 43, in <module>
    main(ptvsdArgs)
  File "c:\Users\HUAWEI\.vscode\extensions\ms-python.python-2019.11.50794\pythonFiles\lib\python\old_ptvsd\ptvsd\__main__.py",
line 432, in main
    run()
  File "c:\Users\HUAWEI\.vscode\extensions\ms-python.python-2019.11.50794\pythonFiles\lib\python\old_ptvsd\ptvsd\__main__.py",
line 316, in run_file
    runpy.run_path(target, run_name='__main__')
  File "D:\anaconda3\lib\runpy.py", line 263, in run_path
    pkg_name=pkg_name, script_name=fname)
  File "D:\anaconda3\lib\runpy.py", line 96, in _run_module_code
    mod_name, mod_spec, pkg_name, script_name)
  File "D:\anaconda3\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "d:\source\sorting-visualizer-master\sorting\debug_test.py", line 6, in <module>
    divided_zero()
  File "d:\source\sorting-visualizer-master\sorting\debug_test.py", line 3, in divided_zero
    print(10/i)
ZeroDivisionError: division by zero

我们使用刚安装的pretty_errorsimport下:

import pretty_errors

def divided_zero():
    for i in range(10, -1, -1):
        print(10/i)

divided_zero()

此时看看输出的错误信息,非常精简只有2行,去那些冗余信息:

ZeroDivisionError:
division by zero

完整的输出信息如下图片所示,中间一道分割线,然后输出异常的堆栈,最后是精简的异常名称和提示。

cool!


近期小例子:函数的五类参数使用例子绘制时间线轮播图python参数类型使用总结绘制水球图lambda参数之坑Python绘制仪表盘参数的默认值陷阱!;chain串联多个迭代对象机器学习中会涉及到的随机选择样本使用namedtuple的小例子pkuseg 做分词,超级nice~写一个装饰器:统计异常发生次数和时间;对象可被调用的实现方法;求任意维度两点间距离两种合并字典的方法对比计算和聚合同时进行groupby 分组plotly画柱状图+折线图;

欢迎star小例子库,直接点击阅读原文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值