在 python 的exceptions
模块中包含了内置的异常, 执行任意模块之前, 总是是会自动加载该模块.
所有的异常都被定义为类.
异常基类
下列异常是作为其他异常的基类.
BaseException
所有异常的根类, 所有内置异常都继承自该类.Exception
所有与程序有关的异常的基类, 这些异常包括除SystemExit, GeneratorExit, KeyboardInterrupt
之外的所有内置异常. 应该通过继承Exception
来定义自定义异常.ArithmeticError
算术异常的基类, 这些异常包括OverFlowError, ZeroDivisionError, FloatingPointError
LookupError
索引或键错误的基类, 包括IndexError, KeyError
EnvironmentError
在 pythyon 外部发生错误的基类, 包括IOError, OSError
上面的这些异常基类都不会被显示的触发, 但是可以用他们去捕捉某类错误.
下面的代码可以去捕捉任意的算术异常:
try:
# 一些操作
except ArithmeticError as e:
# 发生了数学错误
常见的内置异常类
一下异常均有程序生成.
AssertionError
失败的assert
语句AttributeError
失败的属性引用或赋值EOFError
文件末尾异常FloatingPointError
失败的浮点操作GeneratorExit
在生成器函数内部引发错误IOError
失败的 I/O 操作IndentationError
缩进错误. 它是SyntaxError
的子类KeyError
在映射中未找到键.LookupError
的子类KeyboardInterrupt
用户按下中断键(通常是 Ctr+C)时引发该错误MemoryError
可恢复的内存不足错误NameError
在全局或全局命名空间中未找到名称NotImplementedError
未实现的功能.OSError
操作系统错误ReferenceError
引用错误. 在底层对象被销毁后访问弱引用就会产生此错误RuntimeError
其他任何类别未包含的一般错误SyntaxError
语法错误UnicodeError
Unicode 编码好解码错误ValueError
类型正确, 但是值不正确是发生此错误ZeroDivisionError
除零错误