Obsługa wyjątków
Na slajdach omawialiśmy znaczenie właściwego kontekstu przy rozwiązywaniu problemów. Jednym z często pomijanych aspektów podczas rejestrowania komunikatów jest głębsze uzasadnienie ich wystąpienia. Błędy bywają bardzo ogólne – na przykład „Nieprawidłowa wartość" lub „Nieprawidłowa data". Możemy jednak wzbogacić te komunikaty o szczegóły i kontekst.
W tym ćwiczeniu będziemy pracować ze wskaźnikiem A1C, który określa odsetek czerwonych krwinek z cukrem przyłączonym do hemoglobiny. Typowe wartości na czczo wynoszą poniżej 5,7% u zdrowych pacjentów, od 5,7% do 6,4% wskazuje na stan przedcukrzycowy, a powyżej 6,5% jest zazwyczaj sygnałem niekontrolowanej cukrzycy.
To ćwiczenie jest częścią kursu
Transakcje i obsługa błędów w PostgreSQL
Instrukcje do ćwiczenia
- Uzupełnij blok transakcji, wypełniając instrukcje
DOiBEGINtam, gdzie to konieczne. - Dodaj wyjątek, który wstawia
'a1c is typically less than 14'do kolumnycontextw tabelierrors. - Zakończ wyjątek, podając nazwę używanego języka proceduralnego.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
-- 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;