Comment attraper getaddrinfo ENOTFOUND
J'ai une liste de liens que j'ai besoin de vérifier, avant le traitement de certaines données. La vérification des en-têtes http.obtenir renvoie l'erreur:
events.js:72
throw er; //Unhandled 'error' event
^
Error: getaddrinfo ENOTFOUND
at errnoException (dns.js:37:11)
Je ne peut pas gérer cette erreur, et les sorties du processus. J'ai essayé res.("erreur") et try..catch sur http.obtenir, mais rien ne fonctionne.
Ci-dessous l'extrait de code, et ici est l'exemple vivant au runnable.com
//This is OK
getHeaders('http://google.com/404pag-that-does-not-exit');
//Here is the error.
//Uncoughtable error!
getHeaders('http://doesnotexistooooo.com');
function getHeaders(link){
var _http = require("http");
var myUrl = require("url");
var qs=(myUrl.parse(link).search==null) ? "" : myUrl.parse(link).search ;
var path=myUrl.parse(link).pathname;
var options = {
hostname: myUrl.parse(link).hostname,
path: path+qs,
method: 'HEAD'
};
_http.get(options, function(res) {
res.on('error',function(e){
console.log("Error: " + myUrl.parse(link).hostname + "\n" + e.message);
console.log( e.stack );
});
console.log('STATUS: ' + res.statusCode);
console.log('HEADERS: ' + JSON.stringify(res.headers));
});
}
Découvrez domaines>.
OriginalL'auteur Maxali | 2014-02-09
Vous devez vous connecter pour publier un commentaire.
Vous suffit de manipuler la
error
cas, comme indiqué dans le message d'erreur. Selon la documentation:Voici un exemple d'utilisation:
ce qui donne:
juste ajouter que cette même technique fonctionne aussi avec les MNP
request
module.Sera-ce de permettre au reste de l'exécution du code?
OriginalL'auteur Paul Mougel
Au très haut niveau, vous pouvez le faire
OriginalL'auteur yPhil