Golang での HTTP エラーの処理は、クライアント リクエストのさまざまなエラー条件に適切に応答するために重要です。エラーを処理するにはいくつかの方法があります。 組み込みのエラー タイプ (例: ErrBadRequest) を使用して、一般的な HTTP エラーを表します。カスタム エラー条件を処理するカスタム エラー タイプを作成します。 httputil.NewError 関数を使用して、ステータス コードとメッセージに基づいて新しいエラーを作成します。
Golang での HTTP エラーの処理は、クライアント リクエストのさまざまなエラー条件に適切に応答できるため、非常に重要です。 Golang には、組み込みの errors
パッケージなど、エラーを処理するいくつかの方法が用意されています。 errors
包。
Golang 提供了几个内置的错误类型来表示常见的 HTTP 错误,例如:
import "net/http" var ( ErrBadRequest = http.StatusBadRequest ErrUnauthorized = http.StatusUnauthorized ErrForbidden = http.StatusForbidden ErrNotFound = http.StatusNotFound ErrMethodNotAllowed = http.StatusMethodNotAllowed )
这些错误类型可以用来返回给客户端,表示特定的错误情况。
如果你需要处理自定义的错误情况,你可以创建自己的错误类型:
type MyError struct { code int message string } func (e *MyError) Error() string { return fmt.Sprintf("code: %d, message: %s", e.code, e.message) }
然后你可以在处理函数中返回这个自定义错误:
func HandleRequest(w http.ResponseWriter, r *http.Request) { if err := validateRequest(r); err != nil { http.Error(w, err.Error(), http.StatusBadRequest) return } // ... 继续处理请求 }
httputil.NewError
net/http/httputil
包提供了 NewError
函数,它可以根据给定的状态码和错误消息创建一个新的 error
err := httputil.NewError(http.StatusBadRequest, "Bad Request")これらのエラー タイプは、特定のエラー状態を表すためにクライアントに返すために使用できます。 カスタム エラー タイプを使用する
カスタム エラー条件を処理する必要がある場合は、独自のエラー タイプを作成できます:
func HandleRequest(w http.ResponseWriter, r *http.Request) { switch r.Method { case "GET": // ... 处理 GET 请求 case "POST": // ... 处理 POST 请求 default: http.Error(w, "Method Not Allowed", http.StatusMethodNotAllowed) } }その後、ハンドラー関数でこのカスタム エラーを返すことができます: 🎜
type InvalidRequestError struct { message string } func (e InvalidRequestError) Error() string { return fmt.Sprintf("invalid request: %s", e.message) } func HandleRequest(w http.ResponseWriter, r *http.Request) { if err := validateRequest(r); err != nil { http.Error(w, err.Error(), http.StatusBadRequest) return } // ... 继续处理请求 }🎜
httputil を使用します。 NewError
🎜🎜net/http/httputil
パッケージは、指定されたステータス コードとエラー メッセージに基づいて新しい を作成できる <code>NewError
関数を提供します。 code>error: 🎜rrreee🎜実際的なケース🎜🎜🎜例 1: 組み込みエラー タイプの使用🎜🎜rrreee🎜🎜例 2: カスタム エラー タイプの使用🎜🎜🎜以上がGolang で HTTP エラーを処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。