CommencerCommencer gratuitement

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

Afficher le cours

Instructions

  • À l’intérieur du 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 can not be null." dans la colonne detail de errors en 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;
Modifier et exécuter le code