ComenzarEmpieza gratis

Manejo de excepciones

En las diapositivas, hablamos de proporcionar el contexto adecuado para la resolución. Un aspecto que a menudo se pasa por alto al registrar mensajes es la razón de fondo. Muchas veces los errores son genéricos, como "Bad value" o "Invalid date". Sin embargo, podemos añadir detalles y contexto para enriquecer esos mensajes.

Aquí vamos a trabajar con la A1C, que es el porcentaje de glóbulos rojos con azúcar unida a la hemoglobina. Normalmente, los valores en ayunas están por debajo del 5,7 % para personas no afectadas; del 5,7 % al 6,4 % indican prediabetes; y por encima del 6,5 % suele ser un indicador de diabetes no controlada.

Este ejercicio forma parte del curso

Transacciones y manejo de errores en PostgreSQL

Ver curso

Instrucciones del ejercicio

  • Completa el bloque de transacción rellenando las sentencias DO y BEGIN donde corresponda.
  • Añade una excepción que inserte 'a1c is typically less than 14' en la columna context de la tabla errors.
  • Finaliza la excepción especificando el lenguaje procedimental utilizado.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

-- 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 y ejecutar código