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).

Preview