CommencerCommencer gratuitement

Consigner des messages pour des exceptions spécifiques

L’un des meilleurs usages de l’interception de plusieurs exceptions spécifiques est de gérer séparément et de consigner des messages d’erreur distincts qui permettent de comprendre précisément 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 un message particulier a été capturé.

Cet exercice fait partie du cours

Transactions et gestion des erreurs dans PostgreSQL

Afficher le cours

Instructions

  • Créez un gestionnaire d’exception pour not_null_violation.
  • Insérez "failed to insert" comme msg et Glucose can not be null. comme detail dans la table errors si une not_null_violation se produit.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

-- 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;
Modifier et exécuter le code