РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
15 of 307 menu

Метод 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:

<+python+> from fastapi import FastAPI from fastapi.responses import JSONResponse app = FastAPI() class CustomError(Exception): pass @app.exception_handler(CustomError) def custom_error_handler(request, exc): return JSONResponse( status_code=418, content={'message': 'custom error'} ) @app.get('/user') def user(): raise CustomError('article') <-python+>

Результат выполнения кода для адреса /user:

{"message": "custom error"}

Смотрите также

  • метод exception_handler,
    который регистрирует обработчик через декоратор
  • метод add_api_route,
    который добавляет маршрут программно
  • класс FastAPI,
    к которому применяется метод
  • метод add_middleware,
    который добавляет промежуточное ПО
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить