Gestire gli errori
Fa parte della sezione Fondamenti di Node.js del percorso Node.js di Coddy. Lezione 13 di 24.
Un file notes.json modificato manualmente può danneggiarsi e, in tal caso, JSON.parse genera un errore e Node stampa una traccia dello stack.
try esegue codice che potrebbe generare un errore. Quando accade, catch riceve l'errore e il tuo programma decide cosa comunicare. err.message è il motivo espresso in una sola riga.
let config;
try {
config = JSON.parse('{ port: 3000 }');
} catch (err) {
console.error(`config is broken: ${err.message}`);
process.exit(1);
}Non intercettare l'errore per poi proseguire con un elenco vuoto: la chiamata successiva a add sovrascriverebbe il file danneggiato e tutte le note al suo interno andrebbero perse.
Sfida
Facile- Quando
notes.jsonnon è un JSON valido, ogni comando stampanotes.json is damaged: <message>su stderr e termina con1. - Il file
notes.jsoniniziale è danneggiato intenzionalmente.
Esegui node notes.js list prima e dopo la modifica. Poi elimina la virgola in più in notes.json ed esegui di nuovo list.
Provalo tu
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;
Tutte le lezioni di Fondamenti di Node.js
1Eseguire JavaScript con Node
Ciao, NodeArgomenti della riga di comandoComandi