赛博红兔的科技博客

CyberHongTu shares news, insights, and musings on fascinating technology subjects.


和我一起玩Python:26. 异常处理

今天咱们要聊聊Python中的异常处理。这节课咱们看了Python自带的那些异常怎么回事,以及如果处理它们来避免程序突然崩溃或者出错。课上还讲了怎么在自己的Python程序里自定义异常处理。举了个例子,展示了不同类型的异常,比如ValueError和ZeroDivisionError,还有怎么抛出自定义的异常。还分享了一些有用的链接,可以方便找到Python自带的错误代码。课程最后,咱们学到了,正确的异常处理不仅可以帮助发现和恢复错误,还能让调试和排障变得更简单,对Python开发者来说这是个很基础的技能。

异常类型简介
BaseException所有异常的基类
SystemExit解释器请求退出
KeyboardInterrupt用户中断执行(通常是输入 ^C
Exception常规错误的基类
StopIteration迭代器没有更多的项
StopAsyncIteration必须在异步迭代器中停止迭代
ArithmeticError数学运算错误的基类
FloatingPointError浮点运算失败
OverflowError数值运算超出最大限制
ZeroDivisionError除(或模除)零(所有数据类型)
AssertionError断言语句失败
AttributeError对象没有这个属性
BufferError与缓冲区相关的操作不能执行
EOFErrorread() 检测到文件末尾(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缩进错误
TabErrorTab 和空格混用
SystemError解释器内部错误
TypeError操作或函数应用于不适当类型的对象
ValueError操作或函数接收到有正确类型但不适当值的参数
UnicodeErrorUnicode 相关的错误
UnicodeDecodeErrorUnicode 解码时的错误
UnicodeEncodeErrorUnicode 编码时错误
UnicodeTranslateErrorUnicode 转换时错误
Warning警告的基类
DeprecationWarning关于被弃用的特性的警告
PendingDeprecationWarning关于特性将会被废弃的警告
RuntimeWarning可疑的运行时行为(runtime behavior)的警告
SyntaxWarning可疑的语法的警告
UserWarning用户代码生成的警告
FutureWarning关于构造将来语义会有改变的警告
ImportWarning用于在导入模块过程中触发的警告
UnicodeWarning与 Unicode 相关的警告
BytesWarning与 bytes 和 bytearray 相关的警告
ResourceWarning资源使用警告


Leave a comment