Capturando exceções específicas
Vamos criar uma função DO que capture quando glucose for definido como null e registre uma mensagem dizendo explicitamente que Glucose não pode ser null.
Este exercício faz parte do curso
Transações e Tratamento de Erros no PostgreSQL
Instruções do exercício
- Dentro do bloco
BEGINda função DO, faça umINSERTempatientsda linha (a1c=7.5,glucose=nullefasting=TRUE). - Adicione uma exceção
not_null_violationque insira"Glucose can not be null."na coluna detail deerrorsem caso de erro.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
-- 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;