ora*_*nge 5 python flask flask-restful
我在开发期间使用了Flask的异常处理(@app.errorhander(MyException)),即使对于来自Flask-Restful端点的异常也能正常工作.
然而,我注意到,切换到时debug=False,瓶的RESTful走的是完全例外处理过(与此propagate_exceptions是False太).我喜欢Flask-Restful为所有未处理的异常发送内部服务器错误,但遗憾的是,对于那些具有Flask异常处理程序的人(当这些异常来自Flask-Restful端点时)也会发生这种情况.
有没有办法告诉Flask-Restful只处理Flask错误处理程序无法处理的异常?如果没有,我可以将某些异常类型排除在Flask-Restful处理之外,那么它们会被Flask处理吗?
我的最后一个选择是覆盖Flask-Restful Api.handle_error并自己实现这个逻辑,但我想首先使用现有的API ...
简而言之,我的解决方案只是创建一个子类Api,将其修改为仅处理类型的异常HTTPException。
from flask_restful import Api as _Api
from werkzeug.exceptions import HTTPException
class Api(_Api):
def error_router(self, original_handler, e):
""" Override original error_router to only handle HTTPExceptions. """
if self._has_fr_route() and isinstance(e, HTTPException):
try:
return self.handle_error(e)
except Exception:
pass # Fall through to original handler
return original_handler(e)
Run Code Online (Sandbox Code Playgroud)
也就是说,我认为压倒一切首先是一个糟糕的设计决策,原因有几个app.handle_user_exception。app.handle_exception
| 归档时间: |
|
| 查看次数: |
837 次 |
| 最近记录: |