FastAPI教程-异常处理优先级

介绍

  1. 精确异常类优先,子类优先父类;
  2. 先注册处理器,后注册父类处理器;
  3. 顺序: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 _():...

原文出处:/show_1GW3rojxKUTh.html