Stacked Diagnostics abrufen
Mit Stacked Diagnostics kannst du die interne PostgreSQL-Fehlermeldung und Details zur Exception auslesen. Lass uns noch einmal unsere Tabelle patients betrachten und versuchen, einen A1C-Wert einzutragen, der über der Testgrenze liegt. Dadurch wird eine CHECK-Constraint-Exception ausgelöst, die wir abfangen können. Wir nutzen die Stacked Diagnostics im Exception-Handler, um unsere Fehlerprotokollierung zu ergänzen.
Diese Übung ist Teil des Kurses
Transaktionen und Fehlerbehandlung in PostgreSQL
Anleitung zur Übung
DECLAREzwei Variablenexc_messageundexc_detailals Text.- Hole den Diagnosestapel und setze
exc_messageaufMESSAGE_TEXTundexc_detailaufPG_EXCEPTION_DETAIL. - Füge
exc_messageundexc_detailin die Feldermsgunddetailder Tabelle errors ein.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
DO $$
-- Declare our text variables: exc_message and exc_detail
___
___ text;
exc_detail ___;
BEGIN
INSERT INTO patients (a1c, glucose, fasting)
values (20, 89, TRUE);
EXCEPTION
WHEN others THEN
-- Get the exception message and detail via stacked diagnostics
___ ___ ___
exc_message = ___,
exc_detail = ___;
-- Record the exception message and detail in the errors table
INSERT INTO errors (___, detail) VALUES (exc_message, ___);
END;
$$ language 'plpgsql';
-- Select all the errors recorded
SELECT * FROM errors;