zoukankan      html  css  js  c++  java
  • 【Python】【异常的获取与处理】

    一、traceback模块(import traceback)

    1. traceback.print_exc()    # 直接打印出来

       traceback.print_exc(file=open("test.txt","a+")    # 若没有test.txt文件,则新建一个,写入调试信息,若存在,则在后面追加

    2.traceback.print_expection()     #返回字符串

    3.traceback.format_expection(type,value,tb[,limit])     # 格式化栈信息和异常信息,返回一个列表,包括代码文件和代码行,以及异常信息。

    4.traceback.extract_tb(traceback,[,limit])  # 返回一个跟踪对象traceback的元祖列表,元组内容为(filename.line number, function name, text)。

    二、sys模块

    sys.exc_info() ,返回值是一个三元组(type,value/message,traceback),其中type表示异常的类型,value/message表示异常的信息或者参数,而traceback则包含调用栈信息的对象。sys.exc_info()可以直接定位最终引发异常的原因,结果比较简洁,但是缺点是难以直接确定引发异常的代码位置。

    具体实践例子

    import sys
    def divnum(a,b):
        c=a/b
        return c
    try:
        print(divnum(2,0))
    except:
        print(sys.exc_info())  ##1,
    print(traceback.print_exc()) ##2
    print(traceback.print_exception()) ##3,返回字符串
    traceback.print_exc(file=open("test.txt","a+") ##4 若没有test.txt文件,则新建一个,写入调试信息,若存在,则在后面追加
    exc_type,exc_value,exc_traceback=sys.exc_info
    print(traceback.format_exception(exc_type,exc_value,exc_traceback)) ## 5
    print(traceback.extract_tb(exc_traceback)) ## 6

    #1 

    (<class 'ZeroDivisionError'>, ZeroDivisionError('division by zero'), <traceback object at 0x0000000003928188>)

    #2 

     

    #3

     #5

    ['Traceback (most recent call last): ', '  File "D:/WorkSpace/untitled/1.py", line 20, in <module>     print(divnum(2,0)) ', '  File "D:/WorkSpace/untitled/1.py", line 17, in divnum     c=a/b ', 'ZeroDivisionError: division by zero ']

    #6

    [<FrameSummary file D:/WorkSpace/untitled/1.py, line 20 in <module>>, <FrameSummary file D:/WorkSpace/untitled/1.py, line 17 in divnum>]

  • 相关阅读:
    jquery取iframe中元素
    jquery 复选框全选/全不选切换 普通DOM元素点击选中/取消选中切换
    css横向 弹性盒子布局的一些属性
    css3 html5画心
    herf 和 src 的区别
    AngularJS bind
    I18n国际化
    jqgrid获取数据条数
    @ModelAttribute设置request、response、session对象
    js浏览器判断函数
  • 原文地址:https://www.cnblogs.com/yuhuang/p/13268977.html
Copyright © 2011-2022 走看看