Stacked diagnostics alma
Stacked diagnostics, PostgreSQL’in dahili hata mesajını ve istisna ayrıntılarını alabilir. Hastalar tablosuna geri dönelim ve test sınırının üzerinde bir A1C eklemeyi deneyelim. Bu, yakalayabileceğimiz bir check constraint istisnasına yol açacak. İstisna işleyicisinde stacked diagnostics kullanarak hata kaydımızı zenginleştirebiliriz.
Bu egzersiz
PostgreSQL'de İşlemler (Transaction) ve Hata Yönetimi
kursunun bir parçasıdırEgzersiz talimatları
DECLAREiçinde iki değişken tanımla:exc_messageveexc_detail(türleri text).- Tanılama yığınını al ve
exc_message’iMESSAGE_TEXT,exc_detail’iPG_EXCEPTION_DETAILolacak şekilde ayarla. exc_messageveexc_detaildeğerlerini errors tablosununmsgvedetailalanlarına ekle.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
DO $$
-- Declare our text variables: exc_message and exc_detail
___
___ text;
exc_detail ___;
BEGIN
INSERT INTO patients (a1c, glucose, fasting)
values (20, 89, TRUE);
EXCEPTION
WHEN others THEN
-- Get the exception message and detail via stacked diagnostics
___ ___ ___
exc_message = ___,
exc_detail = ___;
-- Record the exception message and detail in the errors table
INSERT INTO errors (___, detail) VALUES (exc_message, ___);
END;
$$ language 'plpgsql';
-- Select all the errors recorded
SELECT * FROM errors;