ÎncepețiÎncepe gratuit

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

Vezi cursul

Instrucțiuni pentru exercițiu

  • Completează blocul tranzacției adăugând instrucțiunile DO și BEGIN acolo unde este cazul.
  • Adaugă o excepție care inserează 'a1c is typically less than 14' în coloana context a tabelului errors.
  • Î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;
Editează și rulează codul