cette question fait suite à javascript: comment afficher les erreurs de script dans une alerte contextuelle? où il a été expliqué comment corriger les erreurs javascript classiques en utilisant:
<script type="text/javascript">
window.onerror = function(msg, url, linenumber) {
alert('Error message: '+msg+'\nURL: '+url+'\nLine Number: '+linenumber);
return true;
}
</script>
J'ai essayé et découvert que les erreurs du dojo sont semblables à celle-ci:
TypeError: this.canvas is undefined dojo.js (Row 446)
n'ont pas été signalés en utilisant cette méthode, ce qui m'amène à ma question:
Comment signaler les erreurs javascript all à l'aide de window.onerror
(notamment les erreurs de dojo)?
La meilleure solution consiste à utiliser try/catch, par exemple.
try{
if(a=='a'){
}
}catch(e){
alert(e);
//or send to server
new Image().src='errorReport.php?e='+e;
}
Google Plus semble l'utiliser.
vous pouvez écrire le code comme ceci:
var goErrHandler=window.onerror;
goErrHandler= function(msg, url, linenumber) {
console.log('Error message: '+msg+'\nURL: '+url+'\nLine Number: '+linenumber);
return true;
}
goErrHandler();
donc, dans la console, vous verrez quelque chose comme ça:
Error message: undefined
URL: undefined
Line Number: undefined