zoukankan      html  css  js  c++  java
  • python基础20 -------python中的异常处理

    一、python程序中的会出现的错误。

      1、语法错误:这种错误根本过不了python解释器的语法检测阶段,必须在程序执行之前进行改正。

      2、逻辑错误:这种错误虽然过了语法检测阶段但是程序在执行的过程中会报错,这就产生了程序的异常。
      3、python中程序异常的种类:

        IndentationError 语法错误,代码没有正确对齐。

        SyntaxError Python代码非法,代码不能编译(语法错误)。

         AttributeError 试图访问一个对象没有的属性(未知的对象属性)。

         IOError 输入/输出异常,基本上是无法打开文件。

        OSError 操作系统产生的异常。

        ImportError 无法引入模块或包,基本上是路径问题或名称错误。

        IndexError 下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5]。

        KeyError 试图访问字典里不存在的键。

          KeyboardInterrupt Ctrl+C被按下。

        NameError 尝试访问一个不存在的变量。

        TypeError 传入对象类型与要求的不符合(不同类型间的无效操作)。

        UnboundLocalError 试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量, 导致你以为正在访问它。        ValueError 传入一个调用者不期望的值,即使值的类型是正确的。  

        ZeroDivisionError  除数为零

      4、python解释器抛出异常的格式:

        

    二、异常处理办法

      1、什么是异常处理:

        当python解释器检测到语法错误或者是执行程序时遇到错误语法,那么该解释器就会出发该错误语法异常,程序员会编写特定代码来捕捉这类异常,当成功捕捉之后会进入另一个分支,执行分支内的代码,让程序不会崩溃,这就是异常处理。

      2、为什么要异常处理?

        当python解释器检查错误语法时会抛出异常终止程序,但是当我们异常处理了之后程序会继续处理后面的代码。

      3、如何进行异常处理?

        之前学习过的if判断式可以进行异常处理,如图所示:

        

        注:虽然if判断式可以进行异常处理,但是if判断式是在异常抛出之前进行一个异常的判断,如果有了则执行后面代码,而且只能对同一  个错误类型的不同代码进行判断,如果在一个程序中频繁出现这样的if判断,会降低代码的可读性,降低代码的执行效率。

      4、python中为每个异常定制了一个类型,然后提供了一种特定的语法结构来进行异常处理,如图所示。

      

      注:这个异常处理机制是在异常产生后进行处理的,当try内的程序产生异常后会在except内寻找是否有该异常的处理方法,如果没有还是会报错,终止所有程序。如果有则只会终止try内程序,继续后面程序。

     三、异常处理高级用法

      1、如图所示:

        

      2、如图所示:自定义异常

        

      3、如图所示:断言

        

        当满足assert这个断言的条件时会执行下面代码,否则就会报错,然后程序报错会被try捕捉到执行except的代码。

      

  • 相关阅读:
    eslint 的 env 配置是干嘛使的?
    cookie httpOnly 打勾
    如何定制 antd 的样式(theme)
    剑指 Offer 66. 构建乘积数组
    剑指 Offer 65. 不用加减乘除做加法
    剑指 Offer 62. 圆圈中最后剩下的数字
    剑指 Offer 61. 扑克牌中的顺子
    剑指 Offer 59
    剑指 Offer 58
    剑指 Offer 58
  • 原文地址:https://www.cnblogs.com/xuanan/p/7146314.html
Copyright © 2011-2022 走看看