ComeçarComece de graça

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

Ver curso

Instruções do exercício

  • Dentro do bloco BEGIN da função DO, faça um INSERT em patients da linha (a1c=7.5, glucose=null e fasting=TRUE).
  • Adicione uma exceção not_null_violation que insira "Glucose can not be null." na coluna detail de errors em 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;
Editar e executar o código