Gestion des erreurs
Les erreurs levées sont une bonne chose ! Elles signifient que le runtime a identifié qu'un problème est survenu dans votre programme. Il vous en informe en interrompant l'exécution de la fonction sur la pile actuelle, en terminant le processus (dans Node), et en affichant une trace de la pile dans la console.
N'ignorez pas les erreurs capturées
Ne rien faire avec une erreur capturée empêche toute correction ou réaction. Logger l'erreur (console.log) n'est guère mieux car elle peut se noyer dans la masse des logs. Si du code est placé dans un try/catch, cela indique qu'une erreur est anticipée et nécessite soit un plan de gestion, soit un chemin de code dédié.
Mauvaise pratique :
try {
functionThatMightThrow();
} catch (error) {
console.log(error);
}Bonne pratique :
try {
functionThatMightThrow();
} catch (error) {
// One option (more noisy than console.log):
console.error(error);
// Another option:
notifyUserOfError(error);
// Another option:
reportErrorToService(error);
// OR do all three!
}N'ignorez pas les promesses rejetées
Pour les mêmes raisons que pour les blocs try/catch.
Mauvaise pratique :
getdata()
.then(data => {
functionThatMightThrow(data);
})
.catch(error => {
console.log(error);
});Bonne pratique :
getdata()
.then(data => {
functionThatMightThrow(data);
})
.catch(error => {
// One option (more noisy than console.log):
console.error(error);
// Another option:
notifyUserOfError(error);
// Another option:
reportErrorToService(error);
// OR do all three!
});