Adresse mémoire invalide ou déréférencement de pointeur Nil dans Webcrawler
Lors du développement d'un webcrawler dans Go, les utilisateurs peuvent rencontrer l'erreur "erreur d'exécution : invalide adresse mémoire ou déréférencement de pointeur nul." Cette erreur provient d'une gestion incorrecte de la mémoire ou de l'accès à des pointeurs nuls.
Dans le code fourni, le problème se pose dans les fonctions advancedFetcher et basicFetcher. Dans basicFetcher, l'erreur est probablement causée par l'utilisation directe de http.Get, qui ne permet pas une gestion gracieuse des erreurs. Si http.Get renvoie une erreur, resp.Body sera nul, conduisant à une tentative de fermeture d'un pointeur nul dans resp.Body.Close().
Pour résoudre ce problème, les fonctions doivent être réécrites pour renvoyer une paire (résultat, erreur). Cela permet une gestion et une terminaison appropriées des erreurs avant de rencontrer des pointeurs nuls. Par exemple, au lieu d'utiliser http.Get, on peut utiliser client.Get, qui renvoie une paire (resp *http.Response, err error).
Dans la fonction principale, lors d'une itération sur la tranche de lignes, le code doit vérifier les erreurs renvoyées par advancedFetcher et basicFetcher. Si une erreur est rencontrée, le programme doit la gérer avec élégance plutôt que de la laisser bouillonner et provoquer la panique.
En incorporant une gestion appropriée des erreurs et en renvoyant des paires (résultat, erreur), le code sera plus robuste. et gérez les erreurs potentielles avec élégance, en évitant l'erreur "Erreur d'exécution : adresse mémoire non valide ou déréférencement de pointeur nul".
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!