LoslegenKostenlos loslegen

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

Kurs anzeigen

Anleitung zur Übung

  • DECLARE zwei Variablen exc_message und exc_detail als Text.
  • Hole den Diagnosestapel und setze exc_message auf MESSAGE_TEXT und exc_detail auf PG_EXCEPTION_DETAIL.
  • Füge exc_message und exc_detail in die Felder msg und detail der 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;
Code bearbeiten und ausführen