一、异常处理 Exception

1.异常:

就是不正常的情况,程序开发过程中错误和BUG都是补充正常的情况

2.异常发生的后果:

       引发程序崩溃

3.处理异常的方式

      try-except:异常捕获处理

4.异常处理的目的:

      提高代码的稳定性和健壮性

二、Python使用try处理的语法结构

    含义: try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。

如果你不想在异常发生时结束你的程序,只需在try里捕获它。

1.try:

      # 可能发生异常的代码

2.except:

      # 当发现异常后,代码会立刻进入except中来

      # 这个处理代码

使用别名接收异常

python剔除异常数据 python处理所有异常_Python

正常捕获

python剔除异常数据 python处理所有异常_异常捕获_02

python剔除异常数据 python处理所有异常_语法错误_03

Except可以多次使用,也可用一次捕获所有,如上图的ValueError继承了except,except继承了baseexcept,baseexcept又继承了object等。(多态方式)

一般异常捕获遵循先小后大的原则,

3.else:

      # 表示程序正常执行后,会进入这儿

 

##finally(必须执行)

注意:在函数中遇到return,并且函数存在finally语句块,那么函数必须先执行完finally,之后才会return(一般函数 return 必须立刻返回)

 

三、以下是常见的一些异常提示:

    AttributeError: 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x

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

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

    IndentationError :语法错误(的子类) ;代码没有正确对齐

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

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

    KeyboardInterrupt: Ctrl+C被按下

     NameError :使用一个还未被赋予对象的变量

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

     TypeError :传入对象类型与要求的不符合

     UnboundLocalError :试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量,导致你以为正在访问  它。

ValueError 传入一个调用者不期望的值,即使值的类型是正确的