Класс HTTPError
Класс HTTPError применяется для создания
исключения, которое соответствует HTTP-ошибке.
Он наследуется от класса BottleException
и используется функцией abort, а также
может выбрасываться вручную. Первым параметром
передаётся код статуса, вторым - тело ответа,
третьим - объект исключения, четвёртым - словарь
заголовков.
При выбросе исключения HTTPError Bottle
автоматически формирует HTTP-ответ с указанным
кодом статуса и телом. Это удобно для обработки
ситуаций, когда нужно прервать выполнение
маршрута и вернуть клиенту ошибку.
Синтаксис
HTTPError(status, body, exception, headers)
Пример
Давайте выбросим ошибку 404 вручную в маршруте:
from bottle import Bottle, HTTPError
app = Bottle()
@app.route('/')
def index():
raise HTTPError(404, 'page not found')
Результат выполнения кода для адреса /:
page not found
Пример
Давайте создадим объект HTTPError и
посмотрим на его атрибуты:
from bottle import HTTPError
err = HTTPError(500, 'internal error')
res = err.status_code
print(res)
Результат выполнения кода:
500
Пример
Давайте передадим собственные заголовки в
исключение HTTPError:
from bottle import Bottle, HTTPError
app = Bottle()
@app.route('/')
def index():
headers = {'X-Custom': 'abcde'}
raise HTTPError(403, 'forbidden', None, headers)
Результат выполнения кода для адреса /:
forbidden
Смотрите также
-
атрибут
status_code,
который хранит код статуса HTTP-ошибки -
атрибут
body,
который хранит тело ответа ошибки -
класс
BottleException,
от которого наследуется HTTPError -
функцию
abort,
которая прерывает запрос с кодом ошибки