ホームページ >バックエンド開発 >Golang >Go の HTTP パッケージでエラー処理をカスタマイズするにはどうすればよいですか?

Go の HTTP パッケージでエラー処理をカスタマイズするにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-22 14:48:14685ブラウズ

How to Customize Error Handling in Go's HTTP Package?

標準 HTTP パッケージのカスタム エラー処理

Golang の標準 HTTP パッケージでは、不正な URL にアクセスすると、デフォルトの「404 ページ」が表示されます。見つかりません」というメッセージが通常表示されます。この応答をカスタマイズして、よりユーザー フレンドリーなエクスペリエンスを提供するには、独自のエラー処理関数を実装できます。

Pure 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 Router の解決策:

Gorilla/Mux Router を使用している場合は、次のことができます。組み込み機能を活用して、見つからないシナリオを処理します:

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。