İstisnaları yönetme
Slaytlarda, çözüm için doğru bağlam sağlamayı konuştuk. Mesajlar kaydedilirken sıklıkla gözden kaçan bir alan da bu mesajların arkasındaki daha derin gerekçedir. Çoğu zaman hatalar "Kötü değer" veya "Geçersiz tarih" gibi geneldir. Ancak bu mesajları zenginleştirmek için ayrıntıları ve bağlamı kullanabiliriz.
Burada A1C ile çalışacağız; bu, kırmızı kan hücrelerinin hemoglobine şeker bağlı olan yüzdesidir. Genellikle, etkilenmemiş hastalarda açlık aralıkları %5,7'nin altındadır; prediyabet için %5,7 ile %6,4 arasındadır ve %6,5'in üzeri genellikle yönetilemeyen diyabetin bir göstergesidir.
Bu egzersiz
PostgreSQL'de İşlemler (Transaction) ve Hata Yönetimi
kursunun bir parçasıdırEgzersiz talimatları
- Uygun yerlerde
DOveBEGINifadelerini doldurarak işlem bloğunu tamamla. errorstablosununcontextsütununa'a1c genellikle 14'ten küçüktür'ifadesini ekleyen bir istisna ekle.- Kullanılan yordam dilini belirterek istisnayı sonlandır.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
-- Add a DO function
___ $$
-- BEGIN a transaction block
___
INSERT INTO patients (a1c, glucose, fasting)
values (20, 89, TRUE);
-- Add an EXCEPTION
____
-- Catch all exception types
WHEN others THEN
INSERT INTO errors (msg, detail, ___) VALUES
(
'failed to insert',
'This a1c value is higher than clinically accepted norms.',
'___'
);
END;
-- Make sure to specify the language
____ language 'plpgsql';
-- Select all the errors recorded
SELECT * FROM errors;