【问题标题】:errorhandler not firing when DEBUG is False当 DEBUG 为 False 时错误处理程序不会触发
【发布时间】:2016-01-30 03:31:06
【问题描述】:

我正在使用errorhandlers 来捕获和处理某些类型的异常:

@app.errorhandler(CustomException)
def handle_custom_exception(error):
    return redirect('redirect-path', code=301)

DEBUGTrue 时,这可以正常工作,这也将PROPAGATE_EXCEPTIONS 隐式设置为True。当DEBUGFalse 时,PROPAGATE_EXCEPTIONS 默认为False 并且 Flask 为所有抛出的错误返回一个500,忽略注册的errorhandlers。将PROPAGATE_EXCEPTIONS 设置为True 可以更正这种情况下的错误处理。

我想知道的是:

  • 在生产环境中启用PROPAGATE_EXCEPTIONS 是否安全?有什么副作用我应该关注的吗?

  • 为什么 Flask 在调试和非调试中对此配置有不同的默认值?

【问题讨论】:

    标签: python flask flask-restful


    【解决方案1】:

    你应该添加 app.config['PROPAGATE_EXCEPTIONS'] = True 发生这种情况是因为 flask 覆盖了通常的错误处理代码(对于它控制下的所有路由)。

    【讨论】:

    • 这没有回答“在生产环境中启用PROPAGATE_EXCEPTIONS 是否安全?”
    猜你喜欢
    • 1970-01-01
    • 2019-11-04
    • 2022-07-28
    • 2020-09-20
    • 1970-01-01
    • 2011-06-25
    • 2018-11-24
    • 2021-08-13
    • 2018-03-20
    相关资源
    最近更新 更多