Flask app.errorhandler не перехватывает исключения при работе с Flask-CLI

Я изо всех сил пытаюсь заставить мое приложение Flask правильно обрабатывать ошибки при вызове приложения с помощью Flask-CLI.

Вот простой файл с именем app_runner.py:

import click
from flask import Flask
from flask_cli import FlaskCLI

app = Flask(__name__)
FlaskCLI(app)

@app.errorhandler(Exception)
def catch_error(e):
    print('I wish I saw this')

@app.cli.command(with_appcontext=True)
def test_run():
    with app.app_context():
        print('You will see this')
        raise Exception
        print('You won\'t see this')

Я призываю test_run функция через эту команду bash: FLASK_APP=app_runner.py flask test_run,

Я вижу первое печатное заявление "Ты увидишь это", но я не вижу того, что говорит: "Хотел бы я видеть это".

Я ударил Exception, но я никогда не вхожу в код, определенный в app.errorhandler, У кого-нибудь есть предложения?

1 ответ

Решение

Обработчики ошибок предназначены только для ошибок, возникающих при обработке представлений. Команды CLI совершенно разные. Если вы хотите обработать ошибку в команде Click, вам нужно обработать ее, как и любое исключение Python: с try / except блок.

Другие вопросы по тегам