Obsługa błędów
Część sekcji Podstawy Node.js ścieżki Node.js w Coddy. Lekcja 13 z 24.
Ręcznie edytowany plik notes.json może ulec uszkodzeniu, a wtedy JSON.parse zgłasza wyjątek i Node wyświetla ślad stosu.
try uruchamia kod, który może zgłosić wyjątek. Gdy tak się stanie, catch otrzymuje błąd, a twój program decyduje, co powiedzieć. err.message zawiera zwięzły opis przyczyny.
let config;
try {
config = JSON.parse('{ port: 3000 }');
} catch (err) {
console.error(`config is broken: ${err.message}`);
process.exit(1);
}Nie przechwytuj błędu i nie kontynuuj działania z pustą listą: następne add nadpisałoby uszkodzony plik i wszystkie zawarte w nim notatki zostałyby utracone.
Wyzwanie
Łatwy- Gdy
notes.jsonnie jest prawidłowym plikiem JSON, każde polecenie wypisujenotes.json is damaged: <message>na standardowe wyjście błędów i kończy działanie z kodem1. - Plik
notes.jsonw wersji początkowej jest celowo uszkodzony.
Uruchom node notes.js list przed i po wprowadzeniu zmian. Następnie usuń dodatkowy przecinek z pliku notes.json i ponownie uruchom polecenie list.
Spróbuj swoich sił
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;
Wszystkie lekcje w sekcji Podstawy Node.js
1Uruchamianie JavaScript w Node
Witaj, NodeArgumenty wiersza poleceńPolecenia