Capturer des exceptions spécifiques
Créons une fonction DO qui intercepte le cas où glucose est défini à null et consigne un message indiquant explicitement que Glucose ne peut pas être null.
Cette activité fait partie du cours
Transactions et gestion des erreurs dans PostgreSQL
Instructions de l’exercice
- Dans le bloc
BEGINde la fonction DO, faites unINSERTdanspatientsde la ligne (a1c=7.5,glucose=nulletfasting=TRUE). - Ajoutez une exception
not_null_violationqui insère"Glucose ne peut pas être null."dans la colonne detail deerrorsen cas d'erreur.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
-- Make a DO function
DO $$
-- Open a transaction block
BEGIN
INSERT INTO patients (a1c, glucose, fasting)
VALUES (7.5, ___, TRUE);
-- Catch an Exception
EXCEPTION
-- Make it catch not_null_constraint exception types
WHEN ___ ___
-- Insert the proper msg and detail
INSERT INTO errors (___, detail)
VALUES ('failed to insert', '___');
END$$;
-- Select all the errors recorded
SELECT * FROM errors;