2017-09-22 3 views
0

Flask-CLIを使用してアプリケーションを呼び出すときに、Flaskアプリケーションがエラーを適切に処理するように苦労しています。ここでFlask-CLIを使用して実行しているときに、app.errorhandlerが例外をキャッチしない

app_runner.pyと呼ばれる単純なファイルです:FLASK_APP=app_runner.py flask test_run

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機能を呼び出します。

私は最初の印刷文「あなたはこれを見るでしょう」を見ていますが、「私はこれを見ました」と言ったものは表示されません。

私はExceptionをヒットしましたが、app.errorhandlerのコードには絶対に入りません。誰にも何か提案はありますか?

答えて

1

エラーハンドラは、処理中に発生したエラーのみです。ビュー。 CLIコマンドはまったく別です。 Clickコマンドでエラーを処理したい場合は、try/exceptブロックを使用して、Pythonの例外と同様に処理する必要があります。

関連する問題