Penanganan pengecualian yang elegan

Transaksi dan Penanganan Error di PostgreSQL

Jason Myers

Principal Engineer

Degradasi elegan dalam praktik

DO $$
BEGIN
    UPDATE cookies SET quantity = quantity-6 WHERE name = 'Linga';
EXCEPTION 
    WHEN check_violation THEN
        INSERT INTO errors (msg) values ('Quantity can not be less than 0');
        UPDATE cookies SET quantity = 0 WHERE name = 'Linga';
        INSERT INTO errors (msg) values ('Set quantity to the 0 for Linga.');
END$$;
Transaksi dan Penanganan Error di PostgreSQL

Kapan memakai degradasi elegan

  • Memuat data dari sistem eksternal dan mengganti null dengan 0
  • Mendapatkan pembacaan dari instrumen yang akurat hanya sampai ambang tertentu
  • Menerima tanggal di luar batas dan menetapkannya ke nilai sentinel
  • Menulis semua rekaman yang menimbulkan pengecualian ke tabel lain untuk diproses lebih lanjut
Transaksi dan Penanganan Error di PostgreSQL

Kapan mempertimbangkan penanganan pengecualian yang elegan

  • Saat nilai baru tersembunyi di balik operasi matematika seperti sum, avg, atau agregat lain.
  • Saat nilai baru memengaruhi data deret waktu.
Transaksi dan Penanganan Error di PostgreSQL

Ayo berlatih!

Transaksi dan Penanganan Error di PostgreSQL

Preparing Video For Download...