ComenzarEmpieza gratis

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

Ver curso

Instrucciones del ejercicio

  • Crea un gestor de excepciones para not_null_violation.
  • Inserta "failed to insert" como msg y Glucose can not be null. como detail en la tabla errors si ocurre una not_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;
Editar y ejecutar código