zoukankan      html  css  js  c++  java
  • Python中的traceback模块

    traceback模块被用来跟踪异常返回信息. 如下例所示:

    1.直接打印异常信息

    import traceback
    try:
        raise SyntaxError, "traceback test"
    except:
        traceback.print_exc()
    

    将会在控制台输出类似结果:
    Traceback (most recent call last):
      File "H:PythonWorkSpaceTestsrcTracebackTest.py", line 3, in <module>
        raise SyntaxError, "traceback test"
    SyntaxError: traceback test
    


    类似在你没有捕获异常时候, 解释器所返回的结果.

    2.输出异常信息到文件


    你也可以传入一个文件, 把返回信息写到文件中去, 如下:

    import traceback
    import StringIO
    try:
        raise SyntaxError, "traceback test"
    except:
        fp = StringIO.StringIO()    #创建内存文件对象
        traceback.print_exc(file=fp)
        message = fp.getvalue()
        print message
    


    这样在控制台输出的结果和上面例子一样

    3.格式化异常信息


    traceback模块还提供了extract_tb函数来格式化跟踪返回信息, 得到包含错误信息的列表, 如下:

    import traceback
    import sys
    
    def tracebacktest():
        raise SyntaxError, "traceback test"
    try:
        tracebacktest()
    except:
        info = sys.exc_info()
        for file, lineno, function, text in traceback.extract_tb(info[2]):
            print file, "line:", lineno, "in", function
            print text
        print "** %s: %s" % info[:2]
    
    


    控制台输出结果如下:

    H:PythonWorkSpaceTestsrcTracebackTest.py line: 7 in <module>
    tracebacktest()
    H:PythonWorkSpaceTestsrcTracebackTest.py line: 5 in tracebacktest
    raise SyntaxError, "traceback test"
    ** <type 'exceptions.SyntaxError'>: traceback test
    

    4.将错误信息记录到日志中:

    logger.info(traceback.format_exc())
    
    





  • 相关阅读:
    WPF 模板(二)
    WPF 模板
    WFP 样式(复习用)
    wpf 特效学习
    MVC 开源控件学习
    设计模式学习
    使用带参数方式新增或修改可为空的非字符串类型数据到oralce数据库
    python(13)- 文件处理应用Ⅱ:增删改查
    051孤荷凌寒从零开始学区块链第51天DAPP006
    050孤荷凌寒从零开始学区块链第50天DAPP003
  • 原文地址:https://www.cnblogs.com/chenjianhong/p/4144731.html
Copyright © 2011-2022 走看看