Aan de slagGa gratis aan de slag

Uitzonderingen afhandelen

In de dia's hebben we besproken hoe je voldoende context meegeeft voor het oplossen van fouten. Een veelvoorkomend gemis bij het loggen van meldingen is de achterliggende reden. Fouten zijn vaak algemeen, zoals "Bad value" of "Invalid date". Met details en context kun je die meldingen echter verrijken.

Hier werken we met A1C: het percentage rode bloedcellen met suiker gebonden aan hemoglobine. Nuchtere waarden liggen doorgaans onder 5,7% voor mensen zonder afwijkingen, 5,7% tot 6,4% voor prediabetes, en boven 6,5% wijst meestal op onbehandelde diabetes.

Deze oefening maakt deel uit van de cursus

Transacties en foutafhandeling in PostgreSQL

Cursus bekijken

Oefeninstructies

  • Maak het transactiewerkblok af door waar nodig de DO- en BEGIN-statements in te vullen.
  • Voeg een exceptie toe die 'a1c is typically less than 14' in de kolom context van de tabel errors invoegt.
  • Sluit de exceptie af door de gebruikte procedurele taal te specificeren.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

-- 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;
Code bewerken en uitvoeren