• python之异常处理


    I.异常处理方式

    异常:在运行代码过程中,遇到的所有错误 通常带Error字样

    异常处理:我们对代码中所有可能会出现的异常,进行处理

    (1)初级异常处理

    • 处理某个错误(e.g:FileExistsError) 
    • 处理某种类型的错误 (e.g:OSError)
    • 只要有错误就进行抓取(e.g:Exception)

    (2)进一步的异常处理:不仅对错误进行抓取,而且会采取措施

    (3)异常处理方式

    • try...except Exception as e( 存到变量e里面)... 找错,且处理
    • try......except....finally..... finally的作用:不管有没有犯错都会执行
    • try.....except.....else....(不常用)跟try下面的代码是一起的,如果try下面的代码没有犯错,else就会执行,反之则不会执行
    try:
        监控的代码 # 用户输入;打开文件,文件不存在;发送网络请求,网络超时
        assert res == expected  # 断言,比较是否与预期结果一致
    except NameError as e1:
        异常处理1
    except ValueError as e2:
        异常处理2
    except (KeyError,TypeError) as e3:
        异常处理3
    except BaseException as e4: # 所有异常类的父类
        异常处理4
    except Exception as e5: #  所有异常类型处理
        异常处理5
    except: #  所有异常类型处理
        异常处理6
        raise # 释放 错误类型,可以直接返回到指定文件或报告中
    else:
        # 代码没有出现异常时,执行else中的代码
    finally:
        不管代码有没有出现异常都会去执行的代码 

    try:监控可能出错的地方   except:错误处理

    (4) 将错误写入文件

    try:  # 监控可能出错的地方
         监控的代码 
    except 异常类型 as e:  # 错误处理
        file = open("文件名",'a+',encoding='utf-8')   
        file.write(str(e))
        file.close()#关闭文件

    (5)常见的异常类型

    BaseException  所有异常的基类
    
    SystemExit  解释器请求退出
    
    KeyboardInterrupt   用户中断执行
    
    Exception  常规错误的基类
    
    StopIteration  迭代器没有更多的值
    
    GeneratorExit  生成器发生异常来通知退出
    
    StandardError  所有数值计算错误的基类
    
    FloatingPointError  浮点计算错误
    
    OverflowError  数值计算超出最大限制
    
    ZeroDivisionError  除零
    
    AssrttionError  断言语句失败
    
    AttributeError  对象没有这个属性
    
    EOFError  没有内建输入,到达EFO标记
    
    EnvrionmentError 操作系统错误的基类
    
    IOError  输入/输出操作失败
    
    OSError  操作系统错误
    
    WindowsError  系统调用失败
    
    ImportError  导入模块/对象失败
    
    LookupError  无效数据查询的基类
    
    IndexError  序列中没有此索引

    (6)常见的异常

    • 变量没定义:  NameError: name 'a' is not defined
    • 语法错误:  SyntaxError:invalid syntax
    • 键不存在:  KeyError
    • 没找到模块:  ModuleNotFoundError
    • 类型错误:  TypeError
  • 相关阅读:
    4 MyBatis动态SQL之trim元素|转
    2 MyBatis动态sql之where标签|转
    websql
    请求相关注意
    axios
    混淆器
    linux查看内存情况
    【Linux】查看系统内存占用
    Vim与ctags/cscope
    Linux初始root密码设置规则修改
  • 原文地址:https://www.cnblogs.com/kite123/p/11672947.html
Copyright © 2020-2023  润新知