什么是异常
Python用异常对象(exception object)来表示异常情况。遇到错误后,会引发异常。如果异常对象并未被处理或捕捉,程序就会用所谓的回溯(traceback)终止执行。 每个异常都是一些类的实例,这些实例可以被引发,而且可以用多种方法进行捕捉。
1.raise语句
可以使用类(应是Exception的子类)或实例参数调用raise语句来引发异常。使用类时,程序会自动创建类的一个实例;
>>> raise Exception('hyperdrive overload') # 错误信息hyperdrive overload
Traceback (most recent call last):
File "<stdin>", line 1, in ?
Exception: hyperdrive overload
最重要的內建异常类:
类名 | 描述 |
---|---|
Exception | 所有异常的基类 |
AttributeError | 特性引用或赋值失败时引发 |
IOError | 试图打开不存在的文件(包括其他情况)时引发 |
IndexError | 在使用序列中不存在的索引时引发 |
KeyError | 在使用映射中不存在的键时引发 |
NameError | 在找不到名字(变量)时引发 |
SyntaxError | 在代码为错误形式时引发 |
TypeError | 在內建操作或函数应用于错误类型的对象时引发 |
ValueError | 在內建操作或函数应用于正确类型的对象,但该对象使用不适合的值时引发 |
ZeroDivisionError | 在除法或模除操作的第二个操作数为0时引发 |
2.自定义异常类
创建自定义异常类,只要确保从Exception类继承(无论是间接的还是直接的)即可:
class SomeCustomException(Exception): pass