Logování zpráv při konkrétních výjimkách
Jednou z největších výhod zachycování více konkrétních výjimek je možnost každou z nich zpracovat zvlášť a zaznamenat jedinečnou chybovou zprávu, která ti přesně řekne, proč k výjimce došlo. Pojďme to vyzkoušet ve scénáři, kde mohou nastat obě chybové situace. Po cvičení si vysvětlíme, proč se zachytila právě tato konkrétní zpráva.
Toto cvičení je součástí kurzu
Transakce a ošetření chyb v PostgreSQL
Pokyny k cvičení
- Sestav obsluhu výjimky pro
not_null_violation. - Vlož
"failed to insert"jakomsgaGlucose can not be null.jakodetaildo tabulkyerrorsv případě, že nastanenot_null_violation.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
-- 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;