IT Xiao Ang Zai 8月2号

现在,让我们进行继续今天的python学习:

python学习笔记分享(十六)异常处理_运行时错误

版本:python3.64

编程软件:pycharm


异常就是程序出现的一些不致命的错误,可以使用python提供的异常处理机制,在异常出现的时候及时捕获,并处理。

一:异常类型

下面介绍一些常会遇到的一些异常:

1.AssertionError:

当assert断言条件为假的时候抛出的异常,

一般是在测试程序的时候用于在代码中置入检查点。

python学习笔记分享(十六)异常处理_异常处理_02

python学习笔记分享(十六)异常处理_运行时错误_03


2.AttributeError:

访问的对象属性不存在的时候抛出的异常。

python学习笔记分享(十六)异常处理_python_04

python学习笔记分享(十六)异常处理_pycharm_05


3.IndexError:

超出对象索引的范围时抛出的异常。

python学习笔记分享(十六)异常处理_python_06

python学习笔记分享(十六)异常处理_python_07


4.KeyError:

在字典中查找一个不存在的key抛出的异常,建议使用get()方法。

python学习笔记分享(十六)异常处理_运行时错误_08

python学习笔记分享(十六)异常处理_python_09


5.NameError:

访问一个不存在的变量时抛出的异常。

python学习笔记分享(十六)异常处理_异常处理_10

python学习笔记分享(十六)异常处理_运行时错误_11


6.OSError:

操作系统产生的异常,

这个不再演示。


7.SyntaxError:

语法错误时会抛出此异常。

python学习笔记分享(十六)异常处理_异常处理_12

python学习笔记分享(十六)异常处理_python_13


8.TypeError:

类型错误,通常是不通类型之间的操作会出现此异常。

python学习笔记分享(十六)异常处理_pycharm_14

python学习笔记分享(十六)异常处理_python_15


9.ZeroDivisionError:

进行数学运算时除数为0时会出现此异常。

python学习笔记分享(十六)异常处理_pycharm_16

python学习笔记分享(十六)异常处理_运行时错误_17



二:捕获处理异常

知道程序抛出异常就说明程序有问题,但问题并不致命,所以可以通过捕获这些异常,并纠正这些错误即可。捕获异常可以用try语句来实现,有两种实现形式,一种是try-except,一种是try-finally语句。

1.try-except语句

格式如下:

try:

   检测范围

except Exception[as reason]:

   出现异常[Exception]后的处理代码

你也可以用多个except语句分别对感兴趣的异常进行处理或者一个except语句加上多个异常来进行统一处理。但一般不要只用一个except:语句进行,有时会与想要得到的结果大相径庭。


2.try-finally语句

该语句是用来扩展try语句块,如果try语句块中没有出现任何运行时错误,会跳过except语句块执行finally语句块的内容;如果出现异常,则会先执行except语句块的内容再执行finally语句块的内容。总之,finally语句块中的内容是必须要执行的内容。


3.else语句

else语句还可以与异常处理进行搭配,用法和循环语句一样。



三:raise语句与文件with语句

1.raise语句

该语句可以自己抛出一个异常,还可以带参数,表示异常的解释:

python学习笔记分享(十六)异常处理_python_18

python学习笔记分享(十六)异常处理_异常处理_19


2.文件处理with语句

对文件操作使用with语句,将减少代码量,而且with会自动关闭文件,不用担心文件打开了忘记关闭的问题。

python学习笔记分享(十六)异常处理_异常处理_20

python学习笔记分享(十六)异常处理_运行时错误_21

python学习笔记分享(十六)异常处理_python_22