Gestionarea excepțiilor
În slide-uri am discutat despre importanța furnizării unui context adecvat pentru rezolvarea erorilor. Un aspect adesea neglijat atunci când înregistrăm mesaje este motivul mai profund din spatele lor. De multe ori, erorile sunt generice, de tipul „Valoare incorectă" sau „Dată invalidă". Totuși, putem folosi detalii și context pentru a îmbogăți aceste mesaje.
În acest exercițiu vom lucra cu A1C, care reprezintă procentul de globule roșii ce au zahăr atașat la hemoglobină. De obicei, valorile în condiții de post sunt sub 5,7% la pacienții neafectați, între 5,7% și 6,4% pentru prediabet și peste 6,5% ca indicator al unui diabet necontrolat.
Acest exercițiu face parte din cursul
Tranzacții și gestionarea erorilor în PostgreSQL
Instrucțiuni pentru exercițiu
- Completează blocul tranzacției adăugând instrucțiunile
DOșiBEGINacolo unde este cazul. - Adaugă o excepție care inserează
'a1c is typically less than 14'în coloanacontexta tabeluluierrors. - Încheie excepția specificând limbajul procedural utilizat.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
-- 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;