2017-06-12 49 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

相關問題