七、异常与资源管理
异常是错误传播机制,不是输入校验替代品;上下文管理器是资源生命周期协议,不只是文件语法糖。本章建立异常边界、异常链、重试边界和确定性资源清理方法。
本章目录
学习目标
- 区分
BaseException与Exception,设计可处理的业务异常层次。 - 用
raise ... from ...保留根因,理解 3.11+ExceptionGroup。 - 将重试限制在瞬态、幂等且有预算的边界。
- 使用
with、contextmanager、ExitStack和asynccontextmanager确定性释放资源。
验证基线
本章示例位于 example-project/src/tasklib/resources.py,异常链、成功提交、失败回滚和异常后状态恢复已通过 4 个专项测试。
