J'essaie d'ajouter un événement onerror à mon site Web.
window.onerror = function() {
alert("an error");
}
Mais tout ce que je reçois c'est:
notThere();
ReferenceError: notThere is not defined
Qu'est-ce que je rate?
Navigateur: Chrome 26.0.1410.64 m
Étapes à reproduire:
Le window.onerror
fonctionne dans Chrome (voir jsfiddle - http://jsfiddle.net/PWSDF/ ), mais apparemment pas dans la console - ce qui est logique.
window.onerror n'est pas déclenché lorsque la console génère directement une erreur. Il peut être déclenché via setTimeout
cependant, par exemple, setTimeout(function() { notThere(); }, 0);
Duplicata possible: Chrome: une erreur de code sera-t-elle invoquée depuis le déclencheur de la console de développement window.onerror?
Autres raisons pour lesquelles vous ne pourrez peut-être pas gérer les erreurs dans window.onerror
(à l'exception de ceux mentionnés):
window.onerror
Après Vous.Si vous utilisez Angular, les erreurs ne passeront pas par window.onerror
. Vous devez les gérer en utilisant cette usine:
.factory('$exceptionHandler', function() {
return function errorCatcherHandler(exception, cause) {
console.error(exception);
if (window.OnClientError) window.OnClientError(exception);
};
})
Voir:
https://docs.angularjs.org/api/ng/service/ $ exceptionHandler
http://bahmutov.calepin.co/catch-all-errors-in-angular-app.html