【发布时间】:2023-03-07 21:16:01
【问题描述】:
当使用before_request Flask 声明一个函数时,会吞噬 HTTPExceptions 而不是传播它们:
from flask import Flask
from werkzeug.exceptions import HTTPException
app = Flask(__name__)
@app.before_request
def f():
raise HTTPException("This is not propagated")
@app.route('/')
def test():
return 'This is a view'
if __name__ == '__main__':
app.run()
控制台没有显示异常:
$ python flask_test1.py
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
127.0.0.1 - - [02/Jun/2016 15:01:31] "GET / HTTP/1.1" 200 -
浏览器显示:
Unknown Error
This is not propagated
有办法强制吗?我需要指定的设置,还是应该与 Werkzeug HTTPExceptions 交互并引发自定义异常?
【问题讨论】:
-
所以当您浏览到该端点时,您会看到 "This is a view" 吗?或者您是否收到 HTTP 错误代码/某些错误页面(这是预期的行为)?
-
@jonrsharpe 已编辑
-
为什么不是你所期待的结果?这就是应该发生的事情!见werkzeug.pocoo.org/docs/0.11/exceptions
标签: python exception flask werkzeug