try/catch/finally
try menjalankan kode berisiko, catch menangkap kegagalan, finally selalu dijalankan — berhasil maupun gagal. finally itulah tempat mematikan indikator loading, karena kalau kamu menaruhnya hanya di try, spinner akan berputar selamanya saat terjadi error. Tangkap error yang spesifik bila memungkinkan, dan jangan pernah mengosongkan blok catch — kegagalan yang ditelan diam-diam adalah bug yang paling mahal untuk ditemukan.
👀 Contoh dulu
function proses(teks) {
try {
const data = JSON.parse(teks);
console.log('Berhasil:', data.nama);
} catch (e) {
console.log('Format salah:', e.name);
} finally {
console.log('--- proses berakhir ---');
}
}
proses('{"nama":"Ana"}');
proses('bukan json');Hasilnya: Berhasil: Ana --- proses berakhir --- Format salah: SyntaxError --- proses berakhir ---
💡 Perhatikan finally muncul di KEDUA kasus. Kode setelah error di dalam try otomatis dilewati.
📝 Sekarang giliranmu
Buat try/catch/finally: di try panggil JSON.parse('{ rusak }'), di catch tampilkan error.name, di finally tampilkan 'Selesai'.