我有一个关于烧瓶错误处理程序的问题。 当我想处理404错误时,我使用以下代码:
@app.errorhandler(404)
def page_not_found(e):
return render_template("404.html")
为什么我应该将(e)传递给函数? 谢谢! :)
答案 0 :(得分:2)
e
是引发的异常,触发要调用的处理程序。
您可以为多个错误代码注册相同的错误处理函数,并且您可以使用传入的参数来确定它被调用的错误或在通用模板中使用该代码:< / p>
@application.errorhandler(404)
@application.errorhandler(401)
@application.errorhandler(500)
def http_error_handler(error):
return render_template("error.html", error=error)
来自Error Handlers documentation:
错误处理程序是一个函数,就像一个视图函数一样,但是当错误发生时会调用并传递该错误。
大胆强调我的。
请注意,它是例外实例;对于HTTP错误代码,它将是HTTPException
class的子类的实例(Werkzeug定义several such subclasses)。如果您真的想要与HTTP代码匹配,此类实例具有.code
属性:
if error.code == 404:
# not found error
答案 1 :(得分:0)
我猜它正在举行异常,所以如果你想让它回来知道出了什么问题。虽然我对此不熟悉,或者如果它是父母,它可能需要提供一个参数来检查错误并正确处理它。