J'essaie de connecter des erreurs JavaScript sur un site productif. Jusqu'à présent, cela fonctionnait assez bien avec le code suivant inclus dans le site:
function catcherr(errorMessage, url, line) { try { alert(1); i.dont.exist += 0; alert(4);} catch(e) { alert(5);} alert(2); var parameters = "msg=" + escape(errorMessage) // ... }
3 Réponses :
La plus probable jQuery enveloppe le rappel dans son propre essai / attraper et ignorer l'erreur. P>
Je ne pense pas que l'erreur soit lancée si je supprimais l'essai {} dans la fonction rattraper ().
Je ne sais pas pourquoi vous avez ce problème (ça a l'air très bizarre et je ne pense pas que c'est un problème avec JQuery mangeant vos exceptions, comme votre alerte (1) n'aurait pas été licenciée), mais je voulais Pour mentionner votre utilisation de Error.Stack - lorsque l'événement code> Onerror code> est appelé, vous n'avez pas le contexte de la pile de l'erreur d'origine, alors obtenez une trace de pile à ce point (en attrapant votre propre erreur) ne cédera pas une pile significative.
mais retour à une réponse réelle - au lieu de simuler un problème en écrivant spécifiquement du code brisé afin que vous puissiez attraper l'erreur, que diriez-vous de lancer directement une erreur? La première ligne de votre gestionnaire d'onerror pourrait être: p> Ceci est un code valide qui ne vous causera probablement pas de problèmes. P> P>
Essayez une exception différente à l'intérieur de l'essai / prise. comme A = 1/0 ou Baddarr [5] = 'Bad' et voyez si ces exceptions déclenchent. Parfois, les erreurs "objet non trouvées" peuvent être à la suite d'objets non chargés et il pourrait y avoir une manipulation différente pour celles que d'autres exceptions. P>
Pas sûr alors. très mystifiant. Avez-vous examiné la manipulation des exceptions dans les fichiers JQuery?