【问题标题】:Flask cannot raise HTTP exception after try catching Runtime error尝试捕获运行时错误后,Flask 无法引发 HTTP 异常
【发布时间】:2016-12-16 04:09:02
【问题描述】:

当我尝试引发 HTTP 异常状态代码 400 时,它只会在浏览器上打印 json 错误消息,但不会像预期的那样在控制台中声明 HTTP/1.1 400 BAD REQUEST。异常引发适用于我程序的所有其他部分,但当我在 try-catch 中针对运行时错误执行此操作时,它不起作用。

我的异常处理程序就是这样的: http://flask.pocoo.org/docs/0.11/patterns/apierrors/

我的尝试捕捉:

try:
    // run some program
catch RuntimeError as e:
    raise InvalidUsage(e.message, status_code=400)

【问题讨论】:

  • 您的代码示例不是有效的 Python,因为 // 不是 Python 中的注释标记。它也不完整,因为缺少 InvalidUser 类的定义,try 块中的代码也是如此。请花点时间阅读How to create a Minimal, Complete, and Verifiable exampleedit 您的问题,以使其变得更好。

标签: python flask exception-handling


【解决方案1】:

你应该使用flask的abort函数,比如:

from flask import abort

@app.route("/some_route")
def some_route():
    try:
        # do something
    except SomeException:
         abort(400, "Some message")

【讨论】:

  • 其实应该是abort(400, "Some message")
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-26
相关资源
最近更新 更多