LoslegenKostenlos loslegen

Ausnahmen behandeln

In den Folien haben wir darüber gesprochen, passenden Kontext für die Fehlerbehebung bereitzustellen. Ein Punkt, der beim Aufzeichnen von Meldungen oft übersehen wird, ist die tiefergehende Begründung dafür. Häufig sind Fehlermeldungen generisch wie „Bad value“ oder „Invalid date“. Mit Details und Kontext können wir diese Meldungen jedoch deutlich aussagekräftiger machen.

Hier arbeiten wir mit A1C, also dem Anteil der roten Blutkörperchen in Prozent, an deren Hämoglobin Zucker gebunden ist. Typischerweise liegen Nüchternwerte bei nicht betroffenen Patient:innen unter 5,7 %, 5,7 % bis 6,4 % weisen auf Prädiabetes hin, und über 6,5 % ist meist ein Hinweis auf unbehandelten Diabetes.

Diese Übung ist Teil des Kurses

Transaktionen und Fehlerbehandlung in PostgreSQL

Kurs anzeigen

Anleitung zur Übung

  • Vervollständige den Transaktionsblock, indem du die Anweisungen DO und BEGIN dort ausfüllst, wo sie benötigt werden.
  • Füge eine Exception hinzu, die 'a1c is typically less than 14' in die Spalte context der Tabelle errors einfügt.
  • Beende die Exception, indem du die verwendete prozedurale Sprache angibst.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

-- 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 bearbeiten und ausführen