- 内置异常处理层次结构
以下是来自官方文档的总结,便于查看记忆
BaseException
+-- SystemExit sys.exit()引发,无任何提示
+-- KeyboardInterrupt ctrl+c 中断命令引发
+-- GeneratorExit 当一个generator或coroutine被关闭时将被引发
+-- Exception 非系统退出类
+-- StopIteration next()引发,不能迭代下一项
+-- StopAsyncIteration __anext__()引发停止迭代操作
+-- ArithmeticError 算数类异常的基类
| +-- FloatingPointError 未启用这个异常
| +-- OverflowError 数据溢出
| +-- ZeroDivisionError 被除数是0
+-- AssertionError 断言asssert引发的异常
+-- AttributeError 属性错误
+-- BufferError 缓冲区无法执行异常
+-- EOFError input() 未读取任何数据即达到文件结束条件(EOF)时被引发
+-- ImportError 加载模块异常
| +-- ModuleNotFoundError 模块无法被定为时引发
+-- LookupError 映射异常
| +-- IndexError 序列超域
| +-- KeyError 找不到指定映射键
+-- MemoryError 内存耗尽仍可进行挽救
+-- NameError 变量名未找到
| +-- UnboundLocalError 引用的变量未绑定任何值
+-- OSError 操作系统函数库函数引发
| +-- BlockingIOError 非阻塞对象被阻塞
| +-- ChildProcessError 子进程操作失败
| +-- ConnectionError 与连接相关
| | +-- BrokenPipeError 试图写入已关闭的管道
| | +-- ConnectionAbortedError 连接尝试被对方终止
| | +-- ConnectionRefusedError 连接尝试被对方拒绝
| | +-- ConnectionResetError 连接被对方重置
| +-- FileExistsError 试图创建一个已存在的文件
| +-- FileNotFoundError 请求的文件或目录不存在
| +-- InterruptedError 系统调用被输入信号中断
| +-- IsADirectoryError 请求对目录进行文件操作
| +-- NotADirectoryError 请求对非目录进行目录操作
| +-- PermissionError 缺少文件或目录权限
| +-- ProcessLookupError 进程不存在
| +-- TimeoutError 系统超时
+-- ReferenceError 弱引用的数据已被垃圾回收
+-- RuntimeError
| +-- NotImplementedError 继承抽象基类后为实现函数 implemente意为实现
| +-- RecursionError 超过最大递归深度
+-- SyntaxError 语法错误
| +-- IndentationError 缩进错误
| +-- TabError tab 和 空格不一致
+-- SystemError 内部错误,但是并未严重到要放弃所有希望
+-- TypeError 类型错误
+-- ValueError 函数参数类型错误
| +-- UnicodeError unicode类编码错误
| +-- UnicodeDecodeError 解码错误
| +-- UnicodeEncodeError 编码错误
| +-- UnicodeTranslateError 转写错误
+-- Warning 警告类基类
+-- DeprecationWarning 针对其他py开发者,作为已弃用特性相关警告
+-- PendingDeprecationWarning 将要弃用的特性相关警告
+-- RuntimeWarning 模糊的运行
+-- SyntaxWarning 模糊的语法
+-- UserWarning 用户代码所产生警告的基类
+-- FutureWarning 针对应用终端用户,已弃用特性相关警告
+-- ImportWarning 模块导入可能出错
+-- UnicodeWarning unicode相关的警告
+-- BytesWarning 与bytes bytearray 相关的警告
+-- ResourceWarning 与资源使用相关的警告