• 九、python异常


    异常处理机制

    1、异常是什么

      Python使用异常对象来表示异常状态,并在遇到错误时引发异常。

      异常对象未被处理(或捕获)时,程序将终止并显示一条错误消息(traceback)。

      每个异常都是某个类的实例,如ZeroDivisionError。

    2、让事情沿指定的轨道出错

      2.1 raise语句

        要引发异常,可使用raise语句,并将一个类(必须是Exception的子类)或实例作为参数。

        将类作为参数时,将自动创建一个实例。

    一些内置的异常类
    类名 描述
    Exception 几乎所有的异常类都是从它派生出来的
    AttributeError 引用属性或给它赋值失败时引发
    OSError 操作系统不能执行指定的任务(如打开文件)时引发,有多个子类
    IndexError 使用序列中不存在的索引时引发,为LookupError的子类
    KeyError 使用映射中不存在的键时引发,为LookupError的子类
    NameError 找不到名称(变量)时引发
    SyntaxError 代码不正确时引发
    TypeError 将内置操作或函数用于类型不正确的对象时引发
    Valuerror 将内置操作或函数用于这样的对象时引发:其类型正确但包含的值不合适
    ZeroDIvisionError 在除法或求模运算的第二个参数为零时引发

      2.2 自定义的异常类

        就像创建其他类一样,直接或间接地继承Exception(从任何内置异常类派生都可以)

        

    3、捕获异常

        捕获异常可使用try/except

        

      3.1 不提供参数

        

        还可使用raise......from......语句来提供自己的异常上下文,也可使用None来禁用上下文。

        

        

      3.2 多个except子句

        

        可使用一个except子句捕获多种异常,在一个元组中指定这些异常

        

      3.3 finally子句

        finally子句,可用于在发生异常时执行清理工作。

        

        finally子句适合用于确保文件或网络套接字得以关闭。

    4、异常和函数

        如果不处理函数中引发的异常,它将向上传播到调用函数的地方,如果在那里也未得到处理,异常将继续传播,直至到达主程序(全局作用域),如果主程序中也没有异常处理程序,程序将终止并显示栈跟踪消息。

    5、警告

        警告类似于异常,但通常只打印一条错误消息,可指定警告类别,它们是Warning的子类

        

  • 相关阅读:
    实时获取管道信息的一个小框架
    multiprocessing还是threading?
    QThread的一些使用心得
    super超类继承特点小结
    打靶总结
    简析Colorspace
    第一个Unity3D脚本
    一个新的计划,写在年末
    lambda函数的特性
    Nuke Python module的使用
  • 原文地址:https://www.cnblogs.com/nuochengze/p/12442643.html
Copyright © 2020-2023  润新知