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
Instruções do exercício
- Complete o bloco de transação preenchendo as instruções
DOeBEGINquando aplicável. - Adicione uma exceção que insira
'a1c is typically less than 14'na colunacontextda tabelaerrors. - 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;