Gérer les exceptions
Dans le diaporama, nous avons évoqué l'importance de fournir le bon contexte pour résoudre un problème. Un aspect souvent négligé lors de l’enregistrement des messages est la raison sous-jacente. Les erreurs sont souvent génériques, comme « Bad value » ou « Invalid date ». Pourtant, nous pouvons enrichir ces messages avec des détails et du contexte.
Ici, nous allons travailler avec l’A1C, qui est le pourcentage de globules rouges ayant du sucre fixé à l’hémoglobine. En général, les valeurs à jeun sont inférieures à 5,7 % pour les patients non concernés, de 5,7 % à 6,4 % pour le prédiabète, et au‑delà de 6,5 % c’est généralement un indicateur de diabète non contrôlé.
Cet exercice fait partie du cours
Transactions et gestion des erreurs dans PostgreSQL
Instructions
- Complétez le bloc de transaction en remplissant les instructions
DOetBEGINlorsque c’est nécessaire. - Ajoutez une exception qui insère
'a1c is typically less than 14'dans la colonnecontextde la tableerrors. - Terminez l’exception en précisant le langage procédural utilisé.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
-- 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;