【发布时间】:2021-07-27 20:15:57
【问题描述】:
这是app.py的一部分:
app = Flask(__name__)
app.config.from_object('SETTINGS')
app.wsgi_app = Middleware(app.wsgi_app, app)
@app.errorhandler(ValueError)
def all_exception_handler(error):
print('Error Catched!')
return 'Error Handler', 500
这是Middleware类的一部分:
class Middleware:
def __init__(self, wsgi, app):
self.wsgi = wsgi
self.app = app
def __call__(self, environ, start_response):
raise ValueError('Value Error')
return self.wsgi(environ, start_response)
所以我的问题是当我在 Middleware (raise ValueError('Value Error') 内引发 ValueError 异常时,@app.errorhandler(ValueError) 没有触发,因此我在控制台中没有收到 print('Error Catched!')
【问题讨论】: