异常处理
统一捕获处理异常,使得代码更加完善,健壮。
框架内置了一些异常,当然也可以自己定义异常然后捕获处理。
完全可以参考官网(超喜欢这种风格的文档):
https://fastapi.tiangolo.com/tutorial/handling-errors/
异常捕获
在FastAPI中,最常见的就是请求参数验证异常处理,因为FastAPI全面使用了pydantic来做数据类型校验,所以最常见的异常就是ValidationError , 然后FastAPI继承了这个错误,专门捕获请求参数异常的RequestValidationError
捕获异常的语法
from fastapi.exceptions import RequestValidationError
@app.exception_handler(RequestValidationError)
async def request_validation_exception_handler(request: Request, exc: RequestValidationError):
"""
请求参数验证异常
:param request: 请求头信息
:param exc: 异常对象
:return:
"""
# 日志记录异常详细上下文
logger.error(f"全局异\n{request.method}URL{request.url}\nHeaders:{request.headers}\n{traceback.format_exc()}")
return response_code.resp_422(message=exc.errors())
自定义异常
我是这样做的,在utils/custom_exc.py文件下定义好各种异常

本文详细介绍如何在FastAPI中处理异常,包括请求参数验证异常、自定义异常及全局异常的捕获与处理,通过实例展示了如何定义和抛出自定义异常,并提供了一种集中管理异常处理的策略。
最低0.47元/天 解锁文章
1012

被折叠的 条评论
为什么被折叠?



