Consigner des messages pour des exceptions précises
L'un des meilleurs usages de l'interception de plusieurs exceptions spécifiques est de traiter et de consigner distinctement des messages d'erreur uniques qui vous aident à comprendre exactement pourquoi une exception s'est produite. Appliquons cela dans un scénario où les deux conditions d'erreur sont possibles. Nous verrons après l'exercice pourquoi le message spécifique a été capturé.
Cette activité fait partie du cours
Transactions et gestion des erreurs dans PostgreSQL
Instructions de l’exercice
- Créez un gestionnaire d'exception pour
not_null_violation. - Insérez
"failed to insert"commemsgetGlucose can not be null.commedetaildans la tableerrorssi unenot_null_violationsurvient.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
-- 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;