zoukankan      html  css  js  c++  java
  • python-异常处理 traceback获取详细异常

    直接来几个简单的栗子:

    try:
    100/0
    except Exception as err:
    print(err)
    
    

    输出结果:

    division by zero

     只知道是报了这个错,却不知道在哪个文件哪个函数哪一行报的错。

     

    使用 traceback 模块

    import traceback  
    try:  
        100/0  
    except Exception as e:  
        traceback.print_exc()  

    输出结果:

    Traceback (most recent call last):
    File "D:/code/www/jiaoben/test/test1.py", line 3, in <module>
    100/0
    ZeroDivisionError: division by zero

     这样就非常nice了,可以很清楚的看出哪个文件哪个函数哪一行报的错.也方便调试。

    traceback.print_exc()函数 是 traceback.print_exception()函数 的一个简写形式,而它们获取异常相关的数据都是通过sys.exc_info()函数得到的。

     

    traceback.print_exc()和traceback.format_exc()区别

    format_exc()返回字符串,print_exc()直接给打印出来。
    即traceback.print_exc()与print traceback.format_exc()效果是一样的。
    print_exc()还可以接受file参数直接写入到一个文件。比如
    traceback.print_exc(file=open('test.txt','w+'))
    写入到test.txt文件中。

  • 相关阅读:
    print格式化输出(format)
    Python list,tuple,dict,set高级变量常用方法
    K8s的kubectl常用命令
    C/C++中数组与指针的关系探究
    Java中的不可变类
    JAVA 类总结
    c++ string类find总结
    关于看板娘的事儿
    类型转换
    计算机2进制小数点表示法
  • 原文地址:https://www.cnblogs.com/zhuyalong/p/13091835.html
Copyright © 2011-2022 走看看