Kalau sudah lama main PL/SQL, pasti familiar dengan ini:
Kelihatan rapi.
Tidak error.
Procedure “aman”.
Tapi justru di situlah masalahnya.
Kenapa WHEN OTHERS Sering Dipakai?
Jawaban jujurnya:
-
Biar nggak error
-
Biar job tidak gagal
-
Biar user tidak komplain
Dan saya juga dulu sering pakai.
Sampai suatu hari… kena batunya.
Kasus Nyata
Ada job malam:
-
Tidak pernah gagal
-
Log bersih
-
Tapi data tidak lengkap
Setelah dicek:
-
Ada error constraint
-
Tapi tertelan oleh
WHEN OTHERS THEN NULL
Job dianggap sukses.
Data diam-diam rusak.
Dan ini yang paling berbahaya.
Contoh Pola Berbahaya
Kalau gagal:
-
Tidak ada pesan
-
Tidak ada log
-
Tidak ada yang tahu
Kecuali… user komplain keesokan harinya.
WHEN OTHERS yang Lebih Bertanggung Jawab
Kalau memang harus pakai WHEN OTHERS,
minimal lakukan ini:
Atau simpan ke tabel log:
Sekarang:
-
Error tetap tercatat
-
Job tetap jujur gagal
-
Debugging jauh lebih mudah
Kapan WHEN OTHERS Masih Masuk Akal?
Ada kasus tertentu, misalnya:
-
Cleanup process
-
Logging tambahan
-
Error non-kritis yang memang boleh dilewati
Tapi tetap:
-
Jangan kosong
-
Selalu ada jejak
Kebiasaan Lama yang Saya Tinggalkan
Dulu saya sering mikir:
“Yang penting nggak error.”
Sekarang saya lebih takut:
“Error tapi nggak ketahuan.”
PL/SQL itu bukan cuma soal jalan,
tapi soal kejujuran sistem.
Prinsip Pribadi Sekarang
Kalau lihat kode:
-
WHEN OTHERS THEN NULL
Saya langsung bertanya:
-
Error apa yang mau disembunyikan?
-
Apa dampaknya kalau error ini terjadi?
-
Siapa yang tahu kalau ini gagal?
Kalau tidak ada jawaban jelas,
biasanya kode itu perlu diubah.
Penutup
WHEN OTHERS itu alat terakhir,
bukan jalan pintas.
Lebih baik job gagal dengan jelas
daripada sukses tapi bohong.
Sampai catatan Rabu berikutnya 👋
