Capturer des exceptions spécifiques
Créons une fonction DO qui capture le cas où glucose est défini à null et enregistre un message indiquant explicitement que Glucose ne peut pas être null.
Cet exercice fait partie du cours
Transactions et gestion des erreurs dans PostgreSQL
Instructions
- À l’intérieur du bloc
BEGINde la fonction DO, faites unINSERTdanspatientsde la ligne (a1c=7.5,glucose=null, etfasting=TRUE). - Ajoutez une exception
not_null_violationqui insère"Glucose can not be null."dans la colonne detail deerrorsen cas d’erreur.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
-- 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;