Menu
CoddyTech

Menangani error

Termasuk bagian Dasar-Dasar Node.js dalam perjalanan Node.js di Coddy. Pelajaran 13 dari 24.

notes.json yang diedit secara manual bisa rusak, lalu JSON.parse melempar error dan Node mencetak stack trace.

try menjalankan kode yang mungkin melempar error. Saat itu terjadi, catch menerima error tersebut dan programmu menentukan apa yang harus disampaikan. err.message adalah alasan satu barisnya.

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

Jangan tangkap error lalu lanjut dengan list kosong: add berikutnya akan menyimpan ulang file yang rusak, dan semua catatan di dalamnya akan hilang.

challenge icon

Tantangan

Mudah
  • Saat notes.json bukan JSON yang valid, setiap perintah mencetak notes.json is damaged: <message> ke stderr dan keluar dengan 1.
  • notes.json dari kode awal sengaja dibuat rusak.

Jalankan node notes.js list sebelum dan sesudah perubahanmu. Lalu hapus koma tambahan di notes.json dan jalankan list lagi.

Coba sendiri

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;

Semua pelajaran di Dasar-Dasar Node.js

Latihan sendiri: Playground Express