文章目录
简介
常见异常
异常 | 描述 |
---|---|
AssertionError | assert 语句失败 |
AttributeError | 试图访问一个对象没有的属性 |
IOError | 输入/输出异常, 基本上是无法打开文件。 |
ImportError | 无法引入模块或者包, 基本上是路径问题 |
IndentationError | 语法错误, 代码没有正确对齐 |
IndexError | 下标索引超出序列边界, 比如当 l 只有三个元素, 却试图访问 l[5] |
KeyError | 试图访问字典里不存在的键 |
KerboardInterrupt | Ctrl + C 被按下 |
NameError | 使用一个还未被赋值予对象的变量 |
SyntaxError | Python 代码非法, 代码不能解释 |
TypeError | 传入对象类型与要求的不符 |
UnboundLocalError | 试图访问一个还未被设置的局部变量, 基本上是由于另一个同名的全局变量,导致你以为正在访问它 |
ValueError | 传入一个调用者不期望的值, 即使值的类型是正确的 |
Python3内置异常
- BaseException -- 所有内建的异常的基类
- SystemExit -- 由 sys.exit() 函数引发此异常。如果不处理这个异常, Python 解释器退出
- KeyboardInterrupt -- 当用户按下中断键(通常是 Ctrl-C 或 Delete )时引发
- GeneratorExit -- 当调用一个 generator 对象的 close() 方法时引发
- Exception -- 所有内建的、非系统退出的异常,都是从该类派生的。此外, 应该从该类派生所有用户定义的异常
- StopIteration -- 当一个 iterator 的 next() 方法发出信号, 表示没有更多的值时引发
- StopAsyncIteration -- 由异步迭代器对象的__anext__()方法引发
- ArithmeticError -- 各种算术错误引发的内建异常的基类
- FloatingPointError -- 当浮点数操作失败时引发
- OverflowError -- 当要表示算术运算的结果太大时引发, 长整型不会引发该异常
- ZeroDivisionError -- 当除法或取模运算的第 2 个参数为 0 时引发
- AssertionError -- 当 assert 语句失败时引发
- AttributeError -- 当属性引用或赋值失败时引发。当对象根本不支持属性引用或属性赋值时,将引发 TypeError
- BufferError -- 当 buffer 相关的操作无法执行时引发
- EOFError -- 当内建函数 input() 或 raw_input() 的其中之一,在触及文件结尾 (EOF) 情形,而没有读取到任何数据时引发
- ImportError -- 当 import 语句无法找到模块定义,或者当 from ... import 语句未能找到要导入的名称时引发
- ModuleNotFoundError -- 导入的模块不存在
- LookupError -- 当用于映射或序列的键或索引无效时引发的异常的基类
- IndexError -- 当序列下标超出取值范围时引发。(切片索引会被静默地截取到允许范围内;如果索引不是一个普通整数,则引发 TypeError )
- KeyError -- 当在现有键的集合中找不到映射的键时引发
- MemoryError -- 当一个操作将内存耗尽,但情况仍可挽救时(通过删除某些对象)时引发
- NameError -- 当找不到本地或全局名称时引发
- UnboundLocalError -- 当引用函数或方法局部变量,但变量没有绑定值时引发
- OSError
- BlockingIOError -- 当一个操作阻塞一个设置为非阻塞操作的对象(例如套接字)时引发
- ChildProcessError -- 在对子进程执行操作失败时引发
- ConnectionError -- 连接相关问题的基类
- BrokenPipeError -- 当试图在管道上写入而另一端已关闭时尝试写入,或试图写入已关闭写入的套接字时引发
- ConnectionAbortedError -- 当连接尝试被同伴中止时引发
- ConnectionRefusedError -- 当连接尝试被同伴拒绝时引发
- ConnectionResetError -- 当连接被同伴重置时引发
- FileExistsError -- 尝试创建已存在的文件或目录时引发
- FileNotFoundError -- 当请求文件或目录但不存在时引发
- InterruptedError -- 当系统调用被传入信号中断时引发
- IsADirectoryError -- 在目录上请求文件操作时引发
- NotADirectoryError -- 当目录操作被请求的目录不是目录时引发
- PermissionError -- 当尝试运行没有足够访问权限的操作时引发
- ProcessLookupError -- 当一个给定的过程不存在时引发
- TimeoutError -- 当系统功能在系统级别超时时引发
- ReferenceError -- 当用一个由 weakref.proxy() 函数创建的弱引用代理,去访问引用者的属性,而该引用者已经被垃圾回收时,会引发此异常
- RuntimeError -- 当检出错误不属于任何其它类别时引发
- NotImplementedError -- 派生类未重载抽象方法
- RecursionError -- 超过最大递归深度
- SyntaxError -- 当解析器遇到语法错误时引发
- IndentationError -- 与不正确的缩进相关的语法错误的基类
- TabError -- 当缩进中包含对制表符和空格的混用时引发
- IndentationError -- 与不正确的缩进相关的语法错误的基类
- SystemError -- 当解释器发现内部错误,但情况并没有看起来那么严重,不至于到要放弃所有希望的地步,此时会引发本异常
- TypeError -- 当操作或函数应用于不合适类型的对象时引发
- ValueError -- 当内建操作或函数,接收到类型正确,但值不正确的参数,而且这种情况不能用诸如 IndexError 这样的更精确的异常进行描述时引发
- UnicodeError -- 当有关 Unicode 编码或解码错误出现时引发
- UnicodeDecodeError -- 当解码过程中出现的一个 Unicode 相关的错误时引发
- UnicodeEncodeError -- 当编码过程中出现的一个 Unicode 相关的错误时引发
- UnicodeTranslateError -- 当翻译过程中出现的一个 Unicode 相关的错误时引发
- Warning -- 警告类别基类
- DeprecationWarning -- 弃用特性警告基类
- PendingDeprecationWarning -- 将来会被弃用特性的警告基类
- RuntimeWarning -- 可疑 Runtime 行为警告基类
- SyntaxWarning -- 可疑句法警告基类
- UserWarning -- 用户代码生成警告基类
- FutureWarning -- 将来会改变语义结构的警告基类
- ImportWarning -- 可能弄错模块导入警告基类
- UnicodeWarning -- Unicode 相关的警告基类
- BytesWarning -- 与 bytes 和 bytearray 相关的警告
- UnicodeError -- 当有关 Unicode 编码或解码错误出现时引发
异常层次结构
BaseException
├── BaseExceptionGroup
├── GeneratorExit
├── KeyboardInterrupt
├── SystemExit
└── Exception
├── ArithmeticError
│ ├── FloatingPointError
│ ├── OverflowError
│ └── ZeroDivisionError
├── AssertionError
├── AttributeError
├── BufferError
├── EOFError
├── ExceptionGroup [BaseExceptionGroup]
├── 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
│ └── RecursionError
├── StopAsyncIteration
├── StopIteration
├── SyntaxError
│ └── IndentationError
│ └── TabError
├── SystemError
├── TypeError
├── ValueError
│ └── UnicodeError
│ ├── UnicodeDecodeError
│ ├── UnicodeEncodeError
│ └── UnicodeTranslateError
└── Warning
├── BytesWarning
├── DeprecationWarning
├── EncodingWarning
├── FutureWarning
├── ImportWarning
├── PendingDeprecationWarning
├── ResourceWarning
├── RuntimeWarning
├── SyntaxWarning
├── UnicodeWarning
└── UserWarning