標準HTTP 套件中的自訂錯誤處理
Golang 的標準HTTP 套件中,當存取不正確的URL 時,預設出現「404 頁面」通常會顯示「找不到」訊息。要自訂此回應並提供更人性化的體驗,您可以實現自己的錯誤處理函數。
純HTTP 套件的解決方案:
如果您單獨使用net/http 套件,您可以建立一個專用的errorHandler 函數:
func errorHandler(w http.ResponseWriter, r *http.Request, status int) { w.WriteHeader(status) if status == http.StatusNotFound { fmt.Fprint(w, "custom 404") } }
然後,您可以註冊自訂處理程序和errorHandler如提供的程式碼所示:
http.HandleFunc("/", homeHandler) http.HandleFunc("/smth/", smthHandler) http.ListenAndServe(":12345", nil)
Gorilla/Mux 路由器的解決方案:
如果您使用的是gorilla/mux 路由器,您可以利用它的內建功能可以處理未找到的情況:
func main() { r := mux.NewRouter() r.NotFoundHandler = http.HandlerFunc(notFound) }
然後您需要實現notFound根據需要運行:
func notFound(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNotFound) fmt.Fprint(w, "custom 404") }
增強的錯誤處理:
提供的程式碼範例示範了基本的錯誤處理,但您可以擴展它來處理各種HTTP 錯誤並執行其他操作,例如記錄或發送通知。
以上是如何在 Go 的 HTTP 套件中自訂錯誤處理?的詳細內容。更多資訊請關注PHP中文網其他相關文章!