文章目录
- 一、异常的类型
- 二、异常的处理过程
一、异常的类型
在使用Python进行程序编写时,很容易就遇到程序出错的情况,可能是引用了未定义的变量,也可能是访问了字典中不存在的键,还可能是读文件时,只读模式下读取了不存在的文件,这些错误都会导致程序终止运行并输出错误信息,而这些错误均被称作为异常。
在Python中,不同的异常被定义为不同的对象,对应不同的错误,常见的异常如下:
异常名称 | 描述 |
---|---|
Exception | 常规异常的基类 |
ZeroDivisionError | 除数为零 |
IOError | 输入\输出操作失败 |
IndexError | 序列中没有此索引(index) |
KeyError | 映射中没有这个键 |
NameError | 未声明/初始化对象(没有属性) |
IndentationError | 缩进错误 |
ValueError | 传递的值出现错误 |
KeyError | 请求一个不存在的字典关键字引发的错误 |
ImportError | Import无法找到模块 |
AttributeError | 试图访问未知的对象属性引发的错误 |
TypeError | 类型不符合要求引发的错误 |
MemoryError | 内存不足引发的错误 |
SyntaxError | Python代码非法,语法错误 |
当出现异常时,程序会终止运行,无法实现原有功能,若想保证原有功能实现,则需要在异常发生时及时捕获并作出处理。
二、异常的处理过程
Python中提供了try语句来进行异常的捕获与处理,其语法格式如下:
try:
语句
except 异常名称:
捕获异常时处理语句
else:
未发生异常时语句
在上述内容中,当执行try下面的语句时,若出现指定的异常,则执行except子句部分进行异常处理,若未发生异常,则执行else子句部分。
要注意的是,异常处理并不能消除异常本身,而是当异常发生时,让程序按照预设的方式运行下去,避免因为异常被意外终止,不过不确定会发生的异常是什么,可以使用通用的异常名称Exception来捕获。
例如:编写一个允许连续做4次除法,并能够捕捉到输入出错时可能出现的异常的程序。
程序中,用变量i控制循环的进行,总共循环四次,主要捕获的异常为分母为0以及输入的分母不为数值类型。
例如:读取文件2.txt内容,用读模式打开,若文件不存在系统会报错。
当该文件不存在时,结果如下:
当该文件存在时,结果如下: