Menu
CoddyTech

Hataları Ele Alma

Coddy'nin Node.js Journey'sinin Node.js Temelleri bölümünün bir parçası. Ders 13 / 24.

Elle düzenlenen bir notes.json dosyası bozulabilir ve bu durumda JSON.parse hata fırlatır, Node da bir yığın izi yazdırır.

try, hata fırlatabilecek kodu çalıştırır. Hata fırlattığında catch hatayı alır ve programın ne söyleyeceğine sen karar verirsin. err.message tek satırlık nedendir.

let config;
try {
    config = JSON.parse('{ port: 3000 }');
} catch (err) {
    console.error(`config is broken: ${err.message}`);
    process.exit(1);
}

Hatayı yakalayıp boş bir listeyle devam etme: sonraki add bozuk dosyanın üzerine kaydeder ve dosyadaki tüm notlar kaybolur.

challenge icon

Görev

Kolay
  • notes.json geçerli JSON olmadığında, her komut standart hata akışına notes.json is damaged: <message> yazdırır ve 1 ile çıkar.
  • Başlangıçtaki notes.json dosyası bilerek bozuktur.

Değişikliğinizden önce ve sonra node notes.js list komutunu çalıştırın. Ardından notes.json dosyasındaki fazla virgülü silin ve list komutunu tekrar çalıştırın.

Kendin dene

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;

Node.js Temelleri bölümündeki tüm dersler