Error dan Kode Keluar
Termasuk bagian Dasar-Dasar Node.js dalam perjalanan Node.js di Coddy. Pelajaran 5 dari 33.
Saat sebuah perintah gagal, orang di terminal perlu melihat alasannya, dan program apa pun yang menjalankan programmu perlu tahu bahwa programmu gagal.
Sebuah program memiliki dua aliran output: stdout untuk hasil dan stderr untuk error, yang ditulis dengan console.error. Saat program berakhir, program mengembalikan kode keluar: 0 berarti program berhasil, selain itu berarti program gagal. process.exit(1) langsung menghentikan program dengan kode 1.
// node divide.js 6 0
const [a, b] = process.argv.slice(2).map(Number);
if (b === 0) {
console.error('Cannot divide by zero');
process.exit(1);
}
console.log(a / b);Terminal di samping kodemu menampilkan stderr dengan warna merah dan mencetak kode keluar jika nilainya bukan 0.
Tantangan
MudahSaat seseorang menggunakan tool-mu dengan cara yang salah, tool-mu harus menjelaskan cara menggunakannya dan memberi tahu terminal bahwa program gagal. Program melakukan ini dengan aliran error, stderr, dan kode keluar.
- Di
notes.js, ubah cabangelseterakhir, yang mencetakUnknown command:. Error masuk ke stderr, jadi cetak denganconsole.error, bukanconsole.log. - Saat seseorang mengetik perintah yang tidak dikenal, cetak dua baris ini ke stderr, dengan urutan berikut:Baris pertama menyebutkan kata yang diketik: dalam contoh ini
Unknown command: remove Usage: node notes.js <command> [words]remove, darinode notes.js remove 3. Baris kedua selalu sama. Salin persis, dengan<command>dan[words]seperti tertulis: keduanya merupakan bagian dari teks, bukan sesuatu yang perlu diisi. - Saat tidak ada yang diketik setelah
node notes.js, cetak hanya baris penggunaan ke stderr. Jangan cetakUnknown command: undefined. - Dalam kedua kasus, akhiri program dengan kode keluar 1, yang berarti "it failed".
adddanlisttetap berfungsi seperti sebelumnya.node notes.js add Buy milktetap mencetakAdding: Buy milkdan berakhir dengan kode keluar 0.
Coba: tekan Jalankan saat kotak setelah $ node notes.js kosong. Kamu akan melihat baris penggunaan berwarna merah, dan terminal menampilkan kode keluar 1. Lalu ketik remove 3 dan tekan Enter: kamu akan melihat Unknown command: remove dan baris penggunaan, keduanya berwarna merah, serta kode keluar 1. Lalu ketik add Buy milk: kamu akan melihat Adding: Buy milk dengan warna normal, dan tidak ada kode keluar karena terminal menyembunyikan angka 0.
Coba sendiri
// Alat catatanmu dimulai di sini.
const [command, ...words] = process.argv.slice(2);
const text = words.join(' ');
if (command === 'add') {
console.log(`Adding: ${text}`);
} else if (command === 'list') {
console.log('No notes yet');
} else {
console.log(`Unknown command: ${command}`);
}
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar Node.js
1Menjalankan JavaScript di Node
Halo, NodeMembaca PerintahArgumen Baris PerintahPerintah5Peristiwa, Input, dan Package
Dengarkan Sebelum MengirimkanPemancar PeristiwaMembaca InputLatihan sendiri: Playground Express