用途:为 Python API 提供生产级错误处理方案,核心是“Let it crash”——不做过度防御,让异常自然向上传播,只在边界处统一处理。
主要能力:定义领域异常(如 DomainError、UserNotFoundError)与错误码枚举;用 Pydantic 定义 ErrorDetail、ErrorResponse 错误响应模型;通过 @app.exception_handler() 注册全局处理器,统一处理 DomainError、StarletteHTTPException、RequestValidationError 及兜底 Exception;用 raise ... from error 保留原始 traceback;用 tenacity 重试包装第三方 SDK 错误;后台任务用 safe_background_task 捕获并记录异常。
核心原则:raise low, catch high(低层抛出、高层捕获);使用语义化领域异常而非通用异常;禁止裸 except,只捕获特定异常;保留上下文。
使用方式:先定义领域异常与错误码,再定义错误响应 Schema,然后注册全局异常处理器,最后在路由中直接抛出领域异常而不写 try/except。仅在需要重试、转换、清理或添加上下文时才捕获异常。
适用场景:FastAPI 异步 API、Pydantic 校验、asyncio 后台任务、第三方服务调用等。
限制:资料未提供安装命令、版本要求、性能数据或收费信息;示例代码需按实际项目调整。