Исключение BadGateway
Класс BadGateway наследуется от базового исключения
HTTPException и соответствует статус-коду 502.
Он применяется для сигнализации о том, что сервер,
выступающий в роли шлюза или прокси, получил
некорректный ответ от вышестоящего сервера.
Класс не принимает обязательных параметров, но может
быть поднят с помощью raise или возвращён через
abort.
Синтаксис
from flask import abort
abort(502)
Пример
Давайте вызовем исключение BadGateway с помощью
функции abort в обработчике маршрута:
from flask import Flask, abort
app = Flask(__name__)
@app.route('/')
def index():
abort(502)
Результат выполнения кода при обращении к адресу /:
502 Bad Gateway
Пример
Давайте поднимем исключение BadGateway явно,
импортировав его из модуля werkzeug.exceptions:
from flask import Flask
from werkzeug.exceptions import BadGateway
app = Flask(__name__)
@app.route('/')
def index():
raise BadGateway()
Результат выполнения кода при обращении к адресу /:
502 Bad Gateway
Пример
Давайте обработаем исключение BadGateway
и выведем его описание и код:
from flask import Flask, abort
from werkzeug.exceptions import BadGateway
app = Flask(__name__)
@app.errorhandler(BadGateway)
def handle_bad_gateway(e):
return f"code: {e.code}, description: {e.description}"
@app.route('/')
def index():
abort(502)
Результат выполнения кода при обращении к адресу /:
code: 502, description: The server received an invalid response from the upstream server.
Смотрите также
-
класс
HTTPException,
базовый класс для всех HTTP-исключений Flask -
исключение
InternalServerError,
которое соответствует ошибке 500 -
исключение
ServiceUnavailable,
которое соответствует ошибке 503 -
атрибут
code,
который хранит код состояния HTTP