zoukankan      html  css  js  c++  java
  • traceback

    traceback

    Python程序的traceback信息均来源于一个叫做traceback object的对象。

    sys.exc_info()获取了当前处理的exception的相关信息。

    print_tb

    traceback.print_tb(tb[, limit[, file]])
    • tb: traceback object
    • limit: 限制stack trace层级的,如果不设或者为None,就会打印所有层级的stack trace
    • file: 设置打印的输出流的(文件,也可以是stdout之类的file-like object) 如果不设或为None,则输出到sys.stderr。

    print_exception

    traceback.print_exception(etype, value, tb[, limit[, file]])
    • 跟print_tb相比多了两个参数etype和value,分别是exception type和exception value,加上tb(traceback object),正好是sys.exc_info()返回的三个值
    • 另外,与print_tb相比,打印信息多了开头的"Traceback (most...)"信息以及最后一行的异常类型和value信息
    • 还有一个不同是当异常为SyntaxError时,会有"^"来指示语法错误的位置

    print_exc

    print_exc是简化版的print_exception, 由于exception type, value和traceback object都可以通过sys.exc_info()获取,因此print_exc()就自动执行exc_info()来帮助获取这三个参数了,也因此这个函数是我们的程序中最常用的
    traceback.print_exc([limit[, file]])
    import sys
    import traceback
    
    
    def func1():
        raise NameError("--func1 exception--")
    
    
    def main():
        try:
            func1()
        except Exception as e:
         # 异常的类型, 异常的value值,traceback object.
            exc_type, exc_value, exc_traceback_obj = sys.exc_info()
            traceback.print_tb(exc_traceback_obj)
         traceback.print_exception(exc_type, exc_value, exc_traceback_obj, limit=2, file=sys.stdout)
            traceback.print_exc(limit=1, file=sys.stdout)
     
    
    if __name__ == '__main__': 
        main()
    原文链接:https://www.jianshu.com/p/a8cb5375171a
  • 相关阅读:
    scikit-learn
    caffe
    大型云原生项目在数字化企业落地过程解密
    「澳洋主数据项目」主数据促企业变革
    Docker镜像仓库清理的探索之路
    用友云开发者中心助你上云系列之在线调试
    如何精简企业主数据“裹脚布”
    企业推动移动化战略中为什么需要Moli?
    欧派家居牵手用友云平台 打造标准化数据资产管理平台
    用友云开发者中心,你应该知道的那些事
  • 原文地址:https://www.cnblogs.com/Mint-diary/p/14451793.html
Copyright © 2011-2022 走看看