throw: melempar error sendiri
Fungsi yang menerima input tidak valid sebaiknya gagal dengan jelas dan segera (throw), bukan mengembalikan undefined diam-diam yang baru meledak jauh di tempat lain. Prinsip ini disebut *fail fast* — error yang muncul dekat dengan penyebabnya jauh lebih murah untuk diperbaiki. Sertakan pesan yang menyebut nilai penyebabnya, misalnya throw new Error('Umur tidak valid: ' + umur), agar log-nya bisa langsung menunjuk sumber masalah.
👀 Contoh dulu
function daftarUmur(umur) {
if (umur < 0) {
throw new Error('Umur tidak boleh negatif');
}
return 'Terdaftar: ' + umur;
}
try {
console.log(daftarUmur(25));
console.log(daftarUmur(-5)); // berhenti di sini
} catch (e) {
console.log('Ditolak: ' + e.message);
}Hasilnya: Terdaftar: 25 Ditolak: Umur tidak boleh negatif
💡 Bandingkan dengan 'return undefined' diam-diam: error baru muncul jauh kemudian di tempat lain, jauh lebih sulit dilacak.
📝 Sekarang giliranmu
Buat fungsi bagi(a, b) yang throw new Error('Pembagi tidak boleh nol') jika b === 0, selain itu mengembalikan hasil bagi. Uji dengan try/catch memakai bagi(10, 0).