Registrar mensajes en excepciones específicas
Una de las mejores utilidades de capturar varias excepciones específicas es poder gestionar y registrar mensajes de error diferenciados que te ayuden a entender exactamente por qué ocurrió una excepción. Apliquémoslo en un escenario donde ambas condiciones de error son posibles. Después del ejercicio comentaremos por qué se capturó el mensaje específico que se obtuvo.
Este ejercicio forma parte del curso
Transacciones y manejo de errores en PostgreSQL
Instrucciones del ejercicio
- Crea un gestor de excepciones para
not_null_violation. - Inserta
"failed to insert"comomsgyGlucose can not be null.comodetailen la tablaerrorssi ocurre unanot_null_violation.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
-- Make a DO function
DO $$
-- Open a transaction block
___
INSERT INTO patients (a1c, glucose, fasting) values (20, null, TRUE);
-- Catch an Exception
EXCEPTION
-- Make it catch check_violation exception types
WHEN check_violation THEN
-- Insert the proper msg and detail
INSERT INTO errors (msg, detail)
VALUES ('failed to insert', 'A1C is higher than clinically accepted norms.');
-- Make it catch not_null_violation exception types
___ ___ ___
-- Insert the proper msg and detail
INSERT INTO errors (msg, detail)
___ (___, ___);
END$$;
-- Select all the errors recorded
SELECT * FROM errors;