BaşlayınÜcretsiz başlayın

Belirli istisnalarda mesajları günlüğe kaydetme

Birden fazla belirli istisnayı yakalamanın en iyi kullanımlarından biri, istisnanın neden gerçekleştiğini tam olarak anlamana yardımcı olan benzersiz hata mesajlarını ayrı ayrı ele almak ve günlüğe kaydetmektir. Her iki hata koşulunun da mümkün olduğu bir senaryoda bunu uygulayalım. Egzersizden sonra neden belirli mesajı yakaladığını tartışacağız.

Bu egzersiz, kursun bir parçasıdır

PostgreSQL'de İşlemler (Transaction) ve Hata Yönetimi

Kursa Göz Atın

Egzersiz talimatları

  • not_null_violation için bir istisna yakalayıcı oluştur.
  • Bir not_null_violation oluşursa errors tablosuna msg olarak "failed to insert", detail olarak Glucose can not be null. ekle.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

-- Make a DO function
DO $$
-- Open a transaction block
___
    INSERT INTO patients (a1c, glucose, fasting) values (20, null, TRUE);
-- Catch an Exception                                                               
EXCEPTION
	-- Make it catch check_violation exception types
    WHEN check_violation THEN
    	-- Insert the proper msg and detail
       INSERT INTO errors (msg, detail)
       VALUES ('failed to insert', 'A1C is higher than clinically accepted norms.');
    -- Make it catch not_null_violation exception types
    ___ ___ ___
    	-- Insert the proper msg and detail
       INSERT INTO errors (msg, detail) 
       ___ (___, ___);
END$$;
                                                                     
-- Select all the errors recorded
SELECT * FROM errors;
Kodu Düzenle ve Çalıştır