Wednesday, February 18, 2026

 


Kalau sudah lama main PL/SQL, pasti familiar dengan ini:

EXCEPTION WHEN OTHERS THEN NULL; END;

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

BEGIN INSERT INTO orders_backup SELECT * FROM orders; EXCEPTION WHEN OTHERS THEN NULL; END;

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:

EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE(SQLERRM); RAISE; END;

Atau simpan ke tabel log:

EXCEPTION WHEN OTHERS THEN INSERT INTO error_log (error_date, error_message) VALUES (SYSDATE, SQLERRM); RAISE; END;

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:

  1. Error apa yang mau disembunyikan?

  2. Apa dampaknya kalau error ini terjadi?

  3. 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 👋

0 comments:

Post a Comment

Popular Posts