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
Anleitung zur Übung
- Baue einen Exception-Handler für eine
not_null_violation. - Füge
"failed to insert"alsmsgundGlucose can not be null.alsdetailin die Tabelleerrorsein, wenn einenot_null_violationauftritt.
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;