Метод add_exception_handler
Метод add_exception_handler применяется к приложению
FastAPI и привязывает функцию-обработчик к определённому
типу исключения. Первым параметром передаётся класс исключения,
вторым - функция-обработчик. Когда в приложении возникает
исключение указанного типа, FastAPI вызывает эту функцию
вместо стандартной обработки.
Функция-обработчик принимает два аргумента: объект запроса
Request и само исключение. Она должна вернуть объект
Response или совместимый с ним объект.
Синтаксис
@app.add_exception_handler(exc_class_or_status_code, handler)
Пример
Давайте зарегистрируем обработчик для исключения
ValueError, который будет возвращать статус
400 и сообщение об ошибке:
from fastapi import FastAPI
from fastapi.responses import JSONResponse
app = FastAPI()
def value_error_handler(request, exc):
return JSONResponse(
status_code=400,
content={'message': 'value error occurred'}
)
app.add_exception_handler(ValueError, value_error_handler)
@app.get('/')
def index():
raise ValueError('abcde')
Результат выполнения кода для адреса /:
{"message": "value error occurred"}
Пример
Давайте зарегистрируем обработчик для пользовательского
класса исключения с помощью декоратора
exception_handler:
Результат выполнения кода для адреса /user:
{"message": "custom error"}
Смотрите также
-
метод
exception_handler,
который регистрирует обработчик через декоратор -
метод
add_api_route,
который добавляет маршрут программно -
класс
FastAPI,
к которому применяется метод -
метод
add_middleware,
который добавляет промежуточное ПО