Есть ли способ добавить глобальный обработчик ошибок catch-all, в котором я могу изменить ответ на общий ответ JSON?
Я не могу использовать сигнал got_request_exception
, так как не разрешено изменять ответ (http://flask.pocoo.org/docs/0.10/signals/).
В отличие от всех обработчиков сигналов выполняются в порядке undefined и не изменяют никаких данных.
Я бы предпочел не обернуть функцию app.handle_exception
, поскольку это похоже на внутренний API. Думаю, я за чем-то вроде:
@app.errorhandler()
def handle_global_error(e):
return "Global error"
Обратите внимание, что errorhandler
не принимает никаких параметров, что означает, что он поймает все коды исключений/состояний, которые не имеют привязанного к ним конкретного обработчика ошибок. Я знаю, что могу использовать errorhandler(500)
или errorhandler(Exception)
для исключения исключений, но если я делаю abort(409)
, например, он все равно вернет ответ HTML.