介绍
- 精确异常类优先,子类优先父类;
- 先注册处理器,后注册父类处理器;
- 顺序:
RequestValidationError→HTTPException→BusinessException→Exception(全局兜底)。
注意:
Exception兜底处理器放最后,放前面会拦截掉所有其他异常处理器。
注册顺序例子
# 1 参数校验异常
@app.exception_handler(RequestValidationError)
async def _():...
# 2 http异常
@app.exception_handler(HTTPException)
async def _():...
#3 自定义业务异常
@app.exception_handler(BusinessException)
async def _():...
#4 全局兜底所有未知异常,最后写!
@app.exception_handler(Exception)
async def _():...