Aquí hay parte de 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
Y aquí es parte de la clase 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)
Entonces, mi problema es cuando levanto la excepción ValueError
dentro de Middleware
( raise ValueError('Value Error'
) @app.errorhandler(ValueError)
no se activa, por lo que no recibo print('Error Catched!')
en mi consola
Hola de nuevo mi amigo 😉
Le dije que Middlewares
está fuera de la capa de la aplicación (fuera de la solicitud/fuera de la aplicación Flask, etc.) => el controlador de errores de la aplicación no funcionará. Simplemente mueva su lógica a @app.before_request
o app.before_request_funcs