CommencezCommencez gratuitement

Gérer les exceptions

Dans le diaporama, nous avons vu l'importance de fournir un bon contexte pour faciliter la résolution. Un aspect souvent négligé quand on consigne des messages, c'est la raison plus profonde qui les motive. Bien souvent, les erreurs sont génériques, par exemple « Bad value » ou « Invalid date ». Nous pouvons toutefois enrichir ces messages en ajoutant des détails et du contexte.

Ici, nous allons travailler avec l'A1C, soit le pourcentage de globules rouges ayant du sucre fixé à l'hémoglobine. En général, à jeun, les valeurs sont inférieures à 5,7 % pour les personnes non atteintes, de 5,7 % à 6,4 % pour un prédiabète, et au‑delà de 6,5 % cela indique généralement un diabète non maîtrisé.

Cette activité fait partie du cours

Transactions et gestion des erreurs dans PostgreSQL

Voir le cours

Instructions de l’exercice

  • Complétez le bloc de transaction en remplissant les instructions DO et BEGIN au besoin.
  • Ajoutez une exception qui insère 'a1c is typically less than 14' dans la colonne context de la table errors.
  • Terminez l'exception en précisant le langage procédural utilisé.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

-- Add a DO function
___ $$ 
-- BEGIN a transaction block
___ 
    INSERT INTO patients (a1c, glucose, fasting) 
    values (20, 89, TRUE);

-- Add an EXCEPTION                   
____ 
-- Catch all exception types
WHEN others THEN
    INSERT INTO errors (msg, detail, ___) VALUES 
  (
    'failed to insert', 
    'This a1c value is higher than clinically accepted norms.', 
    '___'
  );
END;
-- Make sure to specify the language
____ language 'plpgsql';

-- Select all the errors recorded
SELECT * FROM errors;
Modifier et exécuter le code