python - 在 Python Flask 中处理 BaseException
问题描述
我正在尝试在我的 Flask 应用程序中集成 Sentry 以报告错误,但最近我遇到了一个问题,第三方库导致BaseException
我的一个处理程序被抛出。我看到 Flask 处理 没有问题Exception
,但BaseException
基本上导致应用程序停止工作。一个简单的例子:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
raise BaseException('Bummer! Exception')
return 'Hello world'
if __name__ == '__main__':
app.run(debug=True, port=5004)
调用我得到的路线:
$ curl localhost:5004
curl: (52) Empty reply from server
随后对应用程序的调用使 curl 挂起,等待响应。
我试过errorhandler
像这样使用装饰器:
@app.errorhandler(BaseException)
def handle():
print("Whoops.")
但 Flask 给了我一个错误:
assert issubclass(exc_class, Exception)
AssertionError
这很公平。我知道这个第三方库应该是子类化的Exception
,不是BaseException
,但我仍然希望有一种方法来处理 Flask 中的此类错误并结束请求。
解决方案
推荐阅读
- android - 将自定义字体应用到 editText
- html - 如何计算加载 url 的延迟并使用 VBA 重新开始加载行中的下一个 URL
- android - 不想将不透明度传递给android中的字体
- javascript - Stripe 自定义支付表单实现
- java - TLS 1.2 在 1.7 版本的 java 代码中实现
- php - 当我在 ajax 中传递 jquery datepicker 日期时,php 发现索引错误
- windows - 如何设置 Windows 执行级别以向用户询问 Rust 程序的管理员权限?
- javascript - 最近的聊天应该在 quickblox 历史列表中排在第一位
- php - 如何在 laravel 5.4 中运行 .dll 文件
- openmdao - 组件 IO 是否有额外的内存限制