在 python 的exceptions 模块中包含了内置的异常, 执行任意模块之前, 总是是会自动加载该模块.
所有的异常都被定义为类.
异常基类
下列异常是作为其他异常的基类.
BaseException
所有异常的根类, 所有内置异常都继承自该类.Exception所有与程序有关的异常的基类, 这些异常包括除SystemExit, GeneratorExit, KeyboardInterrupt之外的所有内置异常. 应该通过继承Exception来定义自定义异常.ArithmeticError算术异常的基类, 这些异常包括OverFlowError, ZeroDivisionError, FloatingPointErrorLookupError索引或键错误的基类, 包括IndexError, KeyErrorEnvironmentError在 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语法错误UnicodeErrorUnicode 编码好解码错误ValueError类型正确, 但是值不正确是发生此错误ZeroDivisionError除零错误