Hantera undantag
I slides diskuterade vi vikten av att ge rätt kontext för att kunna lösa problem. Ett område som ofta förbises när meddelanden registreras är den djupare anledningen till dem. Fel är ofta generiska, som "Ogiltigt värde" eller "Ogiltigt datum." Men med hjälp av detaljer och kontext kan vi berika dessa meddelanden.
Här ska vi arbeta med A1C, som är andelen röda blodkroppar som har socker bundet till hemoglobinet. Typiska fastevärden är under 5,7 % för opåverkade patienter, 5,7 % till 6,4 % för prediabetes, och över 6,5 % är vanligtvis ett tecken på okontrollerad diabetes.
Den här övningen är en del av kursen
Transaktioner och felhantering i PostgreSQL
Övningsinstruktioner
- Slutför transaktionsblocket genom att fylla i
DO- ochBEGIN-satserna där det är tillämpligt. - Lägg till ett undantag som infogar
'a1c is typically less than 14'i kolumnencontexti tabellenerrors. - Avsluta undantaget genom att ange vilket procedurorienterat språk som används.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
-- 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;