Gérer les erreurs
Fait partie de la section Les bases de Node.js du Journey Node.js de Coddy. Leçon 13 sur 24.
Un fichier notes.json modifié à la main peut être corrompu, et alors JSON.parse déclenche une erreur et Node affiche une trace de la pile d’appels.
try exécute du code susceptible de déclencher une erreur. Dans ce cas, catch reçoit l’erreur et votre programme décide quoi afficher. err.message indique la raison en une ligne.
let config;
try {
config = JSON.parse('{ port: 3000 }');
} catch (err) {
console.error(`config is broken: ${err.message}`);
process.exit(1);
}Ne capturez pas l’erreur pour continuer avec une liste vide : le prochain add écraserait le fichier endommagé, et toutes les notes qu’il contient seraient perdues.
Défi
Facile- Lorsque
notes.jsonn’est pas un JSON valide, chaque commande affichenotes.json is damaged: <message>sur stderr et se termine avec le code1. - Le fichier
notes.jsonfourni est volontairement endommagé.
Exécute node notes.js list avant et après ta modification. Supprime ensuite la virgule superflue dans notes.json et exécute à nouveau list.
Essayez vous-même
import { existsSync, readFileSync, writeFileSync } from 'node:fs';
const file = 'notes.json';
const store = {
notes: existsSync(file) ? JSON.parse(readFileSync(file, 'utf8')) : [],
save() {
writeFileSync(file, JSON.stringify(this.notes, null, 2));
},
add(text) {
this.notes.push(text);
this.save();
return this.notes.length;
},
remove(n) {
const [text] = this.notes.splice(n - 1, 1);
this.save();
return text;
},
};
export default store;
Toutes les leçons de Les bases de Node.js
1Exécuter JavaScript avec Node
Bonjour, NodeArguments de ligne de commandeCommandes