CommencezCommencez gratuitement

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

Voir le cours

Instructions de l’exercice

  • Dans le bloc BEGIN de la fonction DO, faites un INSERT dans patients de la ligne (a1c=7.5, glucose=null et fasting=TRUE).
  • Ajoutez une exception not_null_violation qui insère "Glucose ne peut pas être null." dans la colonne detail de errors en 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;
Modifier et exécuter le code