Comment puis-je assurer que toutes les erreurs JavaScript sont écrites dans les outils de développement Chrome Console?

StackOverflow https://stackoverflow.com/questions/9318728

  •  26-10-2019
  •  | 
  •  

Question

Considérez la fonction JavaScript suivante:

function triggerError() {
   var something = undefined;
   // The next line will trigger 'TypeError: Cannot call ... of undefined'
   something.doesNotExist();
}

Lors de l'exécution triggerError(); directement l'erreur suivante est écrit dans le Developer Tools Chrome Console en rouge, ce qui est prévu:

TypeError: Cannot call method 'doesNotExist' of undefined

Toutefois, lorsque triggerError(); est exécuté à partir d'un événement auditeur aucune erreur sont écrites sur la console (l'appel de fonction seulement dies silencieusement à something.doesNotExist();) qui rend les choses très difficiles à déboguer en cas de fautes de frappe, etc.

Comment puis-je faire que toutes les erreurs sont écrites dans la console Developer Tools Chrome, y compris les erreurs générées dans le code qui est en cours d'exécution des auditeurs / callbacks événement?

Un travail autour serait évident pour ajouter try { ... } catch (x) { console.log(x) }; partout, mais comme je ne sais pas à l'avance où j'ajouterons les fautes de frappe ce n'est pas une voie à suivre.

Était-ce utile?

La solution

Pouvez-vous montrer votre échantillon, j'ai essayé de le reproduire sur l'extrait suivant et il fonctionne parfaitement bien pour moi:

<script>
function triggerError() {
   var something = undefined;
   // The next line will trigger 'TypeError: Cannot call ... of undefined'
   something.doesNotExist();
}
window.addEventListener("click", triggerError, true);
</script>
<body onclick="triggerError()">
</body>

Autres conseils

Vous pouvez utiliser un try catch:

function triggerError() {
    try{
        var something = undefined;
        // The next line will trigger 'TypeError: Cannot call ... of undefined'
        something.doesNotExist();
   }catch(ex){
        console.error(ex.message);
   }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top