Comment puis-je assurer que toutes les erreurs JavaScript sont écrites dans les outils de développement Chrome Console?
-
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.
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);
}
}