今天咱们要聊聊Python中的异常处理。这节课咱们看了Python自带的那些异常怎么回事,以及如果处理它们来避免程序突然崩溃或者出错。课上还讲了怎么在自己的Python程序里自定义异常处理。举了个例子,展示了不同类型的异常,比如ValueError和ZeroDivisionError,还有怎么抛出自定义的异常。还分享了一些有用的链接,可以方便找到Python自带的错误代码。课程最后,咱们学到了,正确的异常处理不仅可以帮助发现和恢复错误,还能让调试和排障变得更简单,对Python开发者来说这是个很基础的技能。
| 异常类型 | 简介 |
|---|---|
BaseException | 所有异常的基类 |
SystemExit | 解释器请求退出 |
KeyboardInterrupt | 用户中断执行(通常是输入 ^C) |
Exception | 常规错误的基类 |
StopIteration | 迭代器没有更多的项 |
StopAsyncIteration | 必须在异步迭代器中停止迭代 |
ArithmeticError | 数学运算错误的基类 |
FloatingPointError | 浮点运算失败 |
OverflowError | 数值运算超出最大限制 |
ZeroDivisionError | 除(或模除)零(所有数据类型) |
AssertionError | 断言语句失败 |
AttributeError | 对象没有这个属性 |
BufferError | 与缓冲区相关的操作不能执行 |
EOFError | read() 检测到文件末尾(EOF) |
ImportError | 导入模块/对象失败 |
ModuleNotFoundError | 找不到模块 |
LookupError | 序列中没有此索引(index) |
IndexError | 序列中没有此索引(index) |
KeyError | 映射中没有这个键 |
MemoryError | 内存溢出错误(对于 Python 解释器不是致命的) |
NameError | 本地或全局名称未找到 |
UnboundLocalError | 访问未初始化的本地变量 |
OSError | 操作系统错误 |
BlockingIOError | 操作将会阻塞对象(例如 socket) |
ChildProcessError | 子进程有问题 |
ConnectionError | 连接相关的问题 |
FileExistsError | 创建一个已经存在的文件或目录 |
FileNotFoundError | 文件或目录不存在 |
InterruptedError | 系统调用被中断 |
IsADirectoryError | 对目录进行文件操作 |
NotADirectoryError | 对非目录进行目录操作 |
PermissionError | 尝试打开一个权限不足的文件 |
ProcessLookupError | 给定进程不存在 |
TimeoutError | 超时 |
ReferenceError | 弱引用(Weak reference)试图访问已经垃圾回收了的对象 |
RuntimeError | 一般的运行时错误 |
NotImplementedError | 在用户定义的基类中的抽象方法 |
SyntaxError | 语法错误 |
IndentationError | 缩进错误 |
TabError | Tab 和空格混用 |
SystemError | 解释器内部错误 |
TypeError | 操作或函数应用于不适当类型的对象 |
ValueError | 操作或函数接收到有正确类型但不适当值的参数 |
UnicodeError | Unicode 相关的错误 |
UnicodeDecodeError | Unicode 解码时的错误 |
UnicodeEncodeError | Unicode 编码时错误 |
UnicodeTranslateError | Unicode 转换时错误 |
Warning | 警告的基类 |
DeprecationWarning | 关于被弃用的特性的警告 |
PendingDeprecationWarning | 关于特性将会被废弃的警告 |
RuntimeWarning | 可疑的运行时行为(runtime behavior)的警告 |
SyntaxWarning | 可疑的语法的警告 |
UserWarning | 用户代码生成的警告 |
FutureWarning | 关于构造将来语义会有改变的警告 |
ImportWarning | 用于在导入模块过程中触发的警告 |
UnicodeWarning | 与 Unicode 相关的警告 |
BytesWarning | 与 bytes 和 bytearray 相关的警告 |
ResourceWarning | 资源使用警告 |

Leave a comment