Je veux écrire un gestionnaire d'erreurs commun qui capturera volontairement les erreurs personnalisées sur n'importe quelle instance du code.
Quand j'ai throw new Error('sample')
aimé dans le code suivant
try {
throw new Error({'hehe':'haha'});
// throw new Error('hehe');
} catch(e) {
alert(e);
console.log(e);
}
Le journal s'affiche dans Firefox as Error: [object Object]
et je n'ai pas pu analyser l'objet.
Pour la seconde, throw
le journal affiche:Error: hehe
Alors que quand je l'ai fait
try {
throw ({'hehe':'haha'});
} catch(e) {
alert(e);
console.log(e);
}
la console s'est affichée comme: Object { hehe="haha"}
dans laquelle j'ai pu accéder aux propriétés d'erreur.
Quelle est la différence?
La différence est-elle visible dans le code? Une chaîne similaire sera simplement passée en tant que chaîne et un objet en tant qu'objets, mais la syntaxe sera-t-elle différente?
Je n'ai pas exploré lancer un objet d'erreur… Je n'avais fait que lancer des cordes.
Existe-t-il un autre moyen que les deux méthodes mentionnées ci-dessus?
Error
s