HTTP例外を処理するには? Golang では、HTTP 例外処理には次のメソッドが含まれます。 カスタム HTTP エラー ハンドラー: http.Error を使用してエラー応答をカスタマイズします。組み込み例外処理: 例外を回復するには、recover() を使用し、エラー応答を送信するには、errorHandler を使用します。実際のケース: 無効なリクエストの処理: リクエスト メソッドに従ってエラー応答を送信します。サーバーの内部エラーの処理: defercover() を使用して例外をキャッチし、エラー応答を送信します。他の例外を処理します。同様の方法で処理します。
HTTP リクエストを処理する Golang プログラムを作成するとき、クライアントが無効なリクエストを送信する、内部サーバー エラー、ネットワーク接続の問題など、異常な状況が発生する可能性があります。これらの例外を適切に処理することは、堅牢でユーザーフレンドリーなアプリケーションを構築するために重要です。
既知のエラー条件については、例外を処理するカスタム HTTP エラー ハンドラーを作成できます。 http.Error
関数は、カスタム エラー応答を送信するために使用できます。 http.Error
函数可以用来发送自定义错误响应:
import ( "net/http" ) func errorHandler(w http.ResponseWriter, r *http.Request, status int) { http.Error(w, http.StatusText(status), status) }
Golang 提供了对内置异常(例如panic
和recover
)的支持。recover()
func recoverHandler(w http.ResponseWriter, r *http.Request) { defer func() { if err := recover(); err != nil { errorHandler(w, r, http.StatusInternalServerError) } }() // 业务逻辑 }
panic
など) のサポートを提供します。および recover
) のサポート。 recover()
関数は、例外の発生後にプログラムの実行を再開し、例外値を返すことができます: import "net/http" func invalidRequestHandler(w http.ResponseWriter, r *http.Request) { if r.Method != "GET" { errorHandler(w, r, http.StatusBadRequest) return } // 处理 GET 请求 }
シナリオ: 無効なリクエストの処理
import "net/http" func internalErrorHandler(w http.ResponseWriter, r *http.Request) { defer func() { if err := recover(); err != nil { errorHandler(w, r, http.StatusInternalServerError) } }() // 业务逻辑 // 如果业务逻辑引发异常,程序将恢复执行并发送错误响应 }
シナリオ: 処理内部サーバー エラー
🎜rrreee🎜 これらのメソッドを使用すると、HTTP 例外を適切に処理し、意味のあるエラー応答をクライアントに返し、予期しないエラーによるアプリケーションのクラッシュを防ぐことができます。 🎜以上がGolang で HTTP 例外を処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。