Python有两种错误很容易辨认:语法错误和异常:
程序执行过程中产生的大多数错误是语法错误,是由于程序员的疏忽造成的,如变量未声明、零做除数、参数传递时个数不一致,或者类型匹配问题、文件打开方式与文件操作冲突,等等;也可能是程序执行过程中遇到的不可预知的错误,如内存或硬盘空间不足、网络连接失败、文件不能打开或系统出错等。这些错误产生后如果不做适当处理,程序的正常执行将被中断,这是用户不可接受的。
异常是程序运行时发生的错误信号,它在编程过程中是不可避免的。异常就是一个事件,这个事件会在程序执行过程中发生,影响程序的运行。当Python出现异常时,我们要进行捕获与处理,否则程序会终止执行。
当Python检测到一个错误时,解释器就会指出当前程序已经无法继续执行下去了,这时候就出现了异常,即异常是因为程序出现了错误而在正常控制流以外采取的行为。这个行为又分为两个阶段:首先是发生引起异常的错误,然后是检测及采取可能的措施。
Python中有很多内置的异常类型,它们都是由BaseException类派生出来的。表4-1描述了经常使用的异常类型,利用它们可以快速准确判断异常类型,为修正错误带来方便。
- 异 常 类 型 描 述
AttributeError
引用一个对象不存在的属性时引发的异常
IOError
输入/输出异常,如打开不存在的文件
ImportError
导入模块或包异常,如指定的模块不存在
IndentationError
代码缩进不正确时引发的异常
IndexError
对序列进行操作时,尝试使用一个超出范围的下标 索引时引发的异常
KeyError
在字典中访问不存在的键时引发的异常
NameError
访问未定义或未初始化的变量时引发的异常
SyntaxError
代码中存在语法错误时引发的异常
TypeError
数据类型错误时引发的异常
ValueError
数值错误,给函数传递了一个不期望的值,如int('abc'),参数'abc'不能转变为数值
ZeroDivisionError
零作除数时产生的异常
OSError
调用操作系统完成某些功能失败时产生的异常
TypeError
对类型无效的操作引发的异常