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