ホームページ > バックエンド開発 > Golang > Go Web Crawler で「実行時エラー: 無効なメモリ アドレスまたは nil ポインター逆参照」を防ぐ方法は?

Go Web Crawler で「実行時エラー: 無効なメモリ アドレスまたは nil ポインター逆参照」を防ぐ方法は?

Barbara Streisand
リリース: 2024-12-11 11:25:16
オリジナル
371 人が閲覧しました

How to Prevent

Web クローラーでの無効なメモリ アドレスまたは Nil ポインター逆参照

Go で Web クローラーを開発しているときに、「実行時エラー: 無効です」というエラーが発生する場合があります。メモリアドレスまたは nil ポインタ逆参照。」このエラーは、不適切なメモリ処理または nil ポインタへのアクセスが原因で発生します。

提供されたコードでは、advancedFetcher 関数と BasicFetcher 関数で問題が発生します。 BasicFetcher 内では、適切なエラー処理ができない http.Get を直接使用することによってエラーが発生する可能性があります。 http.Get がエラーを返した場合、resp.Body は nil になり、resp.Body.Close() で nil ポインタを閉じようとします。

これを解決するには、関数を書き換えて返すようにする必要があります。 (結果、エラー) のペア。これにより、nil ポインターが発生する前に適切なエラー処理と終了が可能になります。たとえば、http.Get を使用する代わりに、(resp *http.Response, err error) ペアを返す client.Get を使用できます。

main 関数では、行スライスを反復処理するときに、コードでは、advancedFetcher と BasicFetcher によって返されるエラーをチェックする必要があります。エラーが発生した場合、プログラムはエラーが発生してパニックを引き起こすのではなく、適切に処理する必要があります。

適切なエラー処理を組み込み、(結果、エラー) ペアを返すことにより、コードはより堅牢になります。潜在的なエラーを適切に処理し、「実行時エラー: 無効なメモリ アドレスまたは nil ポインター逆参照」エラーを防ぎます。

以上がGo Web Crawler で「実行時エラー: 無効なメモリ アドレスまたは nil ポインター逆参照」を防ぐ方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート