Zachytávání konkrétních výjimek
Vytvoříme DO funkci, která zachytí situaci, kdy je glucose nastaveno na null, a zaloguje zprávu s jasným vysvětlením, že Glucose nemůže být null.
Toto cvičení je součástí kurzu
Transakce a ošetření chyb v PostgreSQL
Pokyny k cvičení
- Uvnitř bloku
BEGINv DO funkci vlož pomocíINSERTdo tabulkypatientsřádek (a1c=7.5,glucose=nullafasting=TRUE). - Přidej výjimku
not_null_violation, která v případě chyby vloží do sloupce detail tabulky errors zprávu"Glucose can not be null."
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
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;