ホームページ >バックエンド開発 >Golang >Go で HTTP 応答を処理するときに「パニック: ランタイム エラー: 無効なメモリ アドレスまたは nil ポインター逆参照」を防ぐ方法は?

Go で HTTP 応答を処理するときに「パニック: ランタイム エラー: 無効なメモリ アドレスまたは nil ポインター逆参照」を防ぐ方法は?

DDD
DDDオリジナル
2024-12-28 12:21:15371ブラウズ

How to Prevent

Go: HTTP レスポンス エラーの処理

Go で HTTP リクエストを実行する場合、(*クライアント) から返されたエラーを処理することが不可欠です。メソッドを実行します。これにより、エラーが確実に検出され、適切に処理されます。

提供されたコードでは、「パニック: ランタイム エラー: 無効なメモリ アドレスまたは nil ポインター逆参照」というエラーが発生します。これは、エラーをチェックする前に res.Body がアクセスされていることを示しています。

これに対処するには、client.Do によって返されたエラーをすぐにチェックすることが重要です。修正されたコードは次のとおりです。

res, err := client.Do(req)
if err != nil {
    return nil, err
}
defer res.Body.Close()

エラーをすぐにチェックすることで、エラーを適切に処理し、パニックを防ぐことができます。この場合、エラーを確認する前に res.Body にアクセスしたことがエラーの原因となります。したがって、プログラムは有益な情報を提供せずに途中で終了します。

これらのガイドラインに従うことで、HTTP リクエストが正しく処理され、エラーが適切に検出および管理されることを保証できます。

以上がGo で HTTP 応答を処理するときに「パニック: ランタイム エラー: 無効なメモリ アドレスまたは nil ポインター逆参照」を防ぐ方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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