【FastAPI后台API 六】异常处理

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

异常处理

统一捕获处理异常,使得代码更加完善,健壮。
框架内置了一些异常,当然也可以自己定义异常然后捕获处理。

完全可以参考官网(超喜欢这种风格的文档):
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文件下定义好各种异常

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值