2017-09-22 4 views
0

Ich habe Schwierigkeiten, meine Flask-Anwendung Fehler beim Aufruf der Anwendung mit Flask-CLI richtig zu behandeln.Flask app.errorhandler keine Fehler beim Ausführen mit Flask-CLI

Hier ist eine einfache Datei app_runner.py genannt:

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') 

ich die test_run Funktion über diesen bash Befehl aufrufen: FLASK_APP=app_runner.py flask test_run.

Ich sehe die erste gedruckte Aussage "Du wirst das sehen", aber ich sehe nicht die, die sagt "Ich wünschte, ich hätte das gesehen".

Ich schlug die Exception, aber ich gehe nie in den Code unter app.errorhandler definiert. Hat jemand irgendwelche Vorschläge?

Antwort

1

Fehlerhandler sind nur für Fehler, die während der Verarbeitung aufgetreten sind Ansichten. CLI-Befehle sind vollständig voneinander getrennt. Wenn Sie einen Fehler in einem Click-Befehl behandeln möchten, müssen Sie ihn wie jede andere Python-Ausnahme behandeln: mit einem try/except Block.