我正在努力获取烧瓶应用程序,以便使用烧瓶-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')
我通过此bash命令调用 test_run
函数: FLASK_APP=app_runner.py flask test_run
。
我看到了第一个打印语句"你会看到这个",但我看不到那个说"我希望我看到的"的声明。
我击中了Exception
,但是我从未进入app.errorhandler
下定义的代码。有人有任何建议吗?
错误处理程序仅用于处理视图时引起的错误。CLI命令是完全分开的。如果要在单击命令中处理错误,则需要像任何Python例外一样处理它:使用try / except
块。