2017-06-12 53 views
0

我有关于瓶子错误处理程序的问题。 当我要处理404错误,我用这个代码:什么是瓶子错误处理程序中的错误参数

@app.errorhandler(404) 
def page_not_found(e): 
    return render_template("404.html") 

我为什么要通过(E)的功能? 谢谢! :)

+0

'e'是针对您的错误追溯。而且还https://stackoverflow.com/questions/27760113/how-can-i-implement-a-custom-error-handler-for-all-http-errors-in-flask –

+0

'e'将举行对象的异常,因此您可以将其用于上下文信息以提供*为什么*它在您的返回中失败,或者以您自己的逻辑处理您在特定故障时想要执行的操作。这在[documentation]中有解释(http://flask.pocoo.org/docs/0.12/patterns/errorpages/#error-handlers) – idjaw

回答

2

e是引发的异常,触发处理程序被调用。

您可以注册多个错误代码同样的错误处理功能,您可以使用参数传递准确地确定它叫什么错误或使用该代码的通用模板:

@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)的子类的实例。这种情况下,有一个.code属性,如果你真的想匹配对HTTP代码:

if error.code == 404: 
    # not found error 
0

我猜它持有的例外,所以如果你想返回的是要知道什么地方出了错。虽然我对此不熟悉,或者如果它是父母,它可能需要提供给它的参数来检查错误并正确处理它。

+0

这看起来不像一个答案,它只是评论。 – LethalProgrammer