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

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

kursunun bir parçasıdır
Kursu Görüntüle

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ı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

-- 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