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

Исключение RouteReset

Исключение RouteReset применяется внутри функции-обработчика маршрута для прерывания текущей обработки и повторного запуска того же маршрута. Оно наследуется от класса BottleException и обычно используется плагинами и кэширующими обёртками, чтобы заставить Bottle пересчитать обработчик заново, например, после изменения конфигурации или кэша.

Синтаксис

from bottle import RouteReset raise RouteReset()

Пример

Давайте поднимем исключение RouteReset внутри обработчика и посмотрим, как оно прерывает работу:

from bottle import Bottle, RouteReset app = Bottle() @app.route('/') def index(): raise RouteReset() return 'hello'

При обращении к адресу '/' будет поднято исключение RouteReset, и Bottle попытается заново выполнить обработчик. Так как исключение возникает снова, в итоге будет возвращена ошибка.

Пример

Давайте используем счётчик, чтобы выполнить обработчик только один раз и при повторном запуске вернуть результат:

from bottle import Bottle, RouteReset app = Bottle() attempts = 0 @app.route('/') def index(): global attempts attempts += 1 if attempts < 2: raise RouteReset() return 'hello'

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

hello

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

  • класс BottleException,
    который является базовым для всех исключений Bottle
  • класс HTTPError,
    который прерывает запрос с HTTP-ошибкой
  • класс PluginError,
    который сигнализирует об ошибке в плагине
  • атрибут exception,
    который хранит исходное исключение в HTTPError
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить