学习笔记说明
这是一篇Python的学习笔记,关于Python 统一异常处理,仅做记录
异常处理的最佳实践
- 对异常的自定义处理要收拢到统一代码位置
- 请求-响应 链条中的异常不能中断服务器
- 服务端的敏感信息不能暴露给响应
- 通过设计,根据不同类型的异常响应不同的字段值
- status code:HTTP响应码
- code:错误业务码
- message:错误消息
- API文档中需要包含全局异常表
现状
- 主动抛出的异常
HTTPException,在API接口中主动抛出,被FastAPI自动处理BusinessException,在业务层主动抛出,被FastAPI当做Exception自动处理
- 系统自动抛出的异常
RequestValidationError,被Pydantic自动抛出,被FastAPI自动处理HTTPException,被FastAPI自动抛出,被FastAPI自动处理- 其他未知异常,比如数据库、Python语言等无法预知的异常,被
FastAPI当做Exception自动处理
设计
