Latihan 1 dari materi Error Handling yang Baik di Clean Code — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Fungsi divide di bawah punya silent catch yang mengembalikan null, pemanggil tidak tahu ada error dan harus cek null di mana-mana.
Refactor dengan pola yang benar:
DivisionByZeroError extends Error dengan pesan "Tidak bisa membagi dengan nol".divide(a, b), jika b === 0, throw new DivisionByZeroError(). Jika tidak, return a / b.safeDivide(a, b) yang memanggil divide di dalam try/catch. Jika tertangkap DivisionByZeroError, kembalikan string "Error: Tidak bisa membagi dengan nol". Error lain tetap di-rethrow.Uji dengan tiga pemanggilan:
safeDivide(10, 2) → 5safeDivide(10, 0) → string errordivide(20, 4) langsung (tanpa safeDivide) → 5