ComeçarComece de graça

Tratando exceções

Nos slides, falamos sobre fornecer o contexto adequado para a resolução. Uma área frequentemente negligenciada ao registrar mensagens é o motivo mais profundo por trás delas. Muitas vezes, os erros são genéricos, como "Bad value" ou "Invalid date". No entanto, podemos usar detalhes e contexto para deixar essas mensagens mais ricas.

Aqui vamos trabalhar com A1C, que é a porcentagem de glóbulos vermelhos com açúcar ligado à hemoglobina. Em geral, os valores em jejum ficam abaixo de 5,7% para pacientes não afetados; de 5,7% a 6,4% indicam pré-diabetes; e acima de 6,5% geralmente é um indicativo de diabetes não controlado.

Este exercício faz parte do curso

Transações e Tratamento de Erros no PostgreSQL

Ver curso

Instruções do exercício

  • Complete o bloco de transação preenchendo as instruções DO e BEGIN quando aplicável.
  • Adicione uma exceção que insira 'a1c is typically less than 14' na coluna context da tabela errors.
  • Encerre a exceção especificando a linguagem procedural usada.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

-- 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;
Editar e executar o código