Исключение NotImplemented
Исключение NotImplemented относится к группе исключений
Flask и соответствует HTTP-статусу 501. Оно поднимается
тогда, когда сервер не распознаёт метод запроса или не
поддерживает функциональность, необходимую для его обработки.
При возникновении этого исключения Flask возвращает клиенту
ответ со статусом 501 и стандартным описанием.
Исключение удобно использовать для явного указания на то,
что некий маршрут или функция ещё не реализованы. При этом
можно передать собственное описание через параметр
description.
Синтаксис
from flask import abort
abort(501)
Либо через прямое создание исключения:
from werkzeug.exceptions import NotImplemented
raise NotImplemented()
Пример
Давайте поднимем исключение NotImplemented на маршруте:
from flask import Flask, abort
app = Flask(__name__)
@app.route('/')
def index():
abort(501)
Результат выполнения кода при обращении к адресу /:
501 Not Implemented
Пример
Давайте передадим собственное описание в исключение:
from flask import Flask
from werkzeug.exceptions import NotImplemented
app = Flask(__name__)
@app.route('/')
def index():
raise NotImplemented(description='Feature is not ready')
Результат выполнения кода при обращении к адресу /:
501 Not Implemented: Feature is not ready
Пример
Давайте перехватим исключение NotImplemented и вернём
собственный ответ:
from flask import Flask
from werkzeug.exceptions import NotImplemented
app = Flask(__name__)
@app.errorhandler(NotImplemented)
def handle_not_implemented(error):
return 'Custom 501 page', 501
@app.route('/')
def index():
raise NotImplemented()
Результат выполнения кода при обращении к адресу /:
Custom 501 page
Смотрите также
-
класс
HTTPException,
базовый класс всех HTTP-исключений Flask -
исключение
InternalServerError,
которое сигнализирует об ошибке на стороне сервера -
исключение
NotFound,
которое поднимается при отсутствии запрошенного ресурса -
исключение
MethodNotAllowed,
которое поднимается при недопустимом методе запроса