【问题标题】:Flask app.errorhandler not catching exceptions when running with Flask-CLI使用 Flask-CLI 运行时,Flask app.errorhandler 未捕获异常
【发布时间】:2018-03-03 12:06:49
【问题描述】:

在使用 Flask-CLI 调用应用程序时,我正在努力让我的 Flask 应用程序正确处理错误。

这是一个名为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 下定义的代码。有人有什么建议吗?

【问题讨论】:

    标签: python python-3.x flask error-handling flask-cli


    【解决方案1】:

    错误处理程序仅用于处理视图时引发的错误。 CLI 命令是完全独立的。如果要处理 Click 命令中的错误,则需要像处理任何 Python 异常一样处理它:使用 try / except 块。

    【讨论】:

      猜你喜欢
      • 2020-09-04
      • 1970-01-01
      • 2018-06-17
      • 2016-12-16
      • 1970-01-01
      • 2015-03-17
      • 1970-01-01
      • 2018-10-12
      • 1970-01-01
      相关资源
      最近更新 更多