这是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)
所以我的问题是当我在 ValueError
(Middleware
) 中引发 raise ValueError('Value Error'
异常时,@app.errorhandler(ValueError)
没有触发,因此我没有收到 print('Error Catched!')
我的控制台
答案 0 :(得分:1)
再次问候我的朋友?
我 told you Middlewares
在应用层之外(在请求之外/在 Flask 应用程序之外等)=> 应用程序错误处理程序将不起作用。只需将您的逻辑移动到 @app.before_request
或 app.before_request_funcs