Menangkap exception spesifik
Mari membangun fungsi DO yang menangkap saat nilai glucose disetel menjadi null, dan mencatat pesan yang menyatakan secara eksplisit bahwa Glucose tidak boleh bernilai null.
Latihan ini adalah bagian dari kursus
Transaksi dan Penanganan Error di PostgreSQL
Petunjuk latihan
- Di dalam blok
BEGINpada fungsi DO, lakukanINSERTkepatientsdengan baris (a1c=7.5,glucose=null, danfasting=TRUE). - Tambahkan exception
not_null_violationyang menyisipkan"Glucose can not be null."ke kolom detail pada tabel errors jika terjadi kesalahan.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
-- Make a DO function
DO $$
-- Open a transaction block
BEGIN
INSERT INTO patients (a1c, glucose, fasting)
VALUES (7.5, ___, TRUE);
-- Catch an Exception
EXCEPTION
-- Make it catch not_null_constraint exception types
WHEN ___ ___
-- Insert the proper msg and detail
INSERT INTO errors (___, detail)
VALUES ('failed to insert', '___');
END$$;
-- Select all the errors recorded
SELECT * FROM errors;