fastapi之自定义异常处理

Posted 苦行僧冬*婷

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了fastapi之自定义异常处理相关的知识,希望对你有一定的参考价值。

run.py 主程序中自定义异常

from starlette.exceptions import HTTPException as StarletteException
from fastapi.exceptions import RequestValidationError
from fastapi.responses import PlainTextResponse


""" 改写默认的HttpException """


@app.exception_handler(StarletteException)  # 自定义HttpRequest 请求异常
async def http_exception_handle(request, exc):
    """

    :param request: 请求必不可少
    :param exc: 错误栈处理
    :return:
    """
    return PlainTextResponse(str(exc.detail), status_code=exc.status_code)
"""自定义RequestValidationError 重写请求验证异常"""


@app.exception_handler(RequestValidationError)
async def request_validatoion_error(request, exc):
    """
      重写 request错误
    :param request: 必填项
    :param exc: 错误信息栈
    :return:
    """
    return PlainTextResponse(str(exc), status_code=exc.status_code)

chapter04程序抛出异常

""" 改写异常处理,每次使用自定义的异常处理"""


@app04.get(
    \'/http_error/{city_id}\',
    summary= \'测试HttpError\',
    description=\'接口测试: 测试自定义HttpError\',
    tags=[\'HttpExceptionError\'],
    status_code=666
)
async def overwhite_http_error(city_id: int):

    if city_id != 1:
        return city_id
    else:
        raise HTTPException(status_code=418, detail=\'city_id错误\')

 

以上是关于fastapi之自定义异常处理的主要内容,如果未能解决你的问题,请参考以下文章

十一、SpringMVC之自定义异常处理器

Java异常之自定义异常

Flask从入门到精通之自定义错误界面

java基础之自定义异常类及throw和throws的区别

Linux编程之自定义消息队列

Linux编程之自定义消息队列