LoslegenKostenlos loslegen

Meldungen bei bestimmten Exceptions protokollieren

Eine der besten Anwendungen beim Abfangen mehrerer spezifischer Exceptions ist, eindeutige Fehlermeldungen unterschiedlich zu behandeln und zu protokollieren, sodass du genau verstehst, warum eine Exception aufgetreten ist. Wenden wir das in einem Szenario an, in dem beide Fehlerbedingungen möglich sind. Nach der Übung besprechen wir, warum genau diese spezifische Meldung erfasst wurde.

Diese Übung ist Teil des Kurses

Transaktionen und Fehlerbehandlung in PostgreSQL

Kurs anzeigen

Anleitung zur Übung

  • Baue einen Exception-Handler für eine not_null_violation.
  • Füge "failed to insert" als msg und Glucose can not be null. als detail in die Tabelle errors ein, wenn eine not_null_violation auftritt.

Interaktive Übung

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

-- Make a DO function
DO $$
-- Open a transaction block
___
    INSERT INTO patients (a1c, glucose, fasting) values (20, null, TRUE);
-- Catch an Exception                                                               
EXCEPTION
	-- Make it catch check_violation exception types
    WHEN check_violation THEN
    	-- Insert the proper msg and detail
       INSERT INTO errors (msg, detail)
       VALUES ('failed to insert', 'A1C is higher than clinically accepted norms.');
    -- Make it catch not_null_violation exception types
    ___ ___ ___
    	-- Insert the proper msg and detail
       INSERT INTO errors (msg, detail) 
       ___ (___, ___);
END$$;
                                                                     
-- Select all the errors recorded
SELECT * FROM errors;
Code bearbeiten und ausführen