Есть ли способ добавить глобальный обработчик ошибок 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.