zoukankan      html  css  js  c++  java
  • 九、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的子类

        

  • 相关阅读:
    redhat yum替换成CentOS yum 并修改源
    C++11新特性实验
    常见的安装包制作程序installer
    如何在数据库中删除并添加唯一索引?
    springboot中的restTemplate工具类
    如何使用swagger(一)
    The POM for com.qingmu:entity:jar:1.0.0-SNAPSHOT is missing, no dependency information available
    java.lang.IllegalStateException: Found multiple @SpringBootConfiguration annotated classes
    在使用postman中配置返回html页面
    Springboot中设置返回数据的时间格式
  • 原文地址:https://www.cnblogs.com/nuochengze/p/12442643.html
Copyright © 2011-2022 走看看