Событие got_request_exception
Событие got_request_exception относится к сигналам Flask
и отправляется в момент, когда при обработке запроса возникло
исключение, которое не было перехвачено внутри представления.
Сигнал позволяет централизованно логировать ошибки, отправлять
уведомления или выполнять очистку ресурсов. Обработчику сигнала
передаётся объект исключения в качестве аргумента exception,
а также стандартный отправитель sender.
Синтаксис
from flask import got_request_exception
got_request_exception.connect(receiver, sender=None, weak=True)
Пример
Давайте подключим обработчик сигнала и выведем информацию о возникшем исключении в консоль:
from flask import Flask, got_request_exception
app = Flask(__name__)
def log_exception(sender, exception, **extra):
print('Exception:', exception)
got_request_exception.connect(log_exception, app)
@app.route('/')
def index():
raise ValueError('abcde')
Результат выполнения кода при обращении к адресу /:
"Exception: abcde"
Пример
Давайте отключим обработчик сигнала после первого срабатывания:
from flask import Flask, got_request_exception
app = Flask(__name__)
def handle_exception(sender, exception, **extra):
print('Handled:', exception)
got_request_exception.disconnect(handle_exception, app)
got_request_exception.connect(handle_exception, app)
@app.route('/')
def index():
raise RuntimeError('user')
Результат выполнения кода при обращении к адресу /:
"Handled: user"
Смотрите также
-
класс
Signal,
который представляет собой сигнал Flask -
метод
connect,
который подключает обработчик к сигналу -
метод
disconnect,
который отключает обработчик от сигнала -
событие
request_finished,
которое срабатывает после завершения обработки запроса