ÎncepețiÎncepe gratuit

Înregistrarea mesajelor pentru excepții specifice

Unul dintre cele mai bune cazuri de utilizare a interceptării mai multor excepții specifice este gestionarea distinctă și înregistrarea unor mesaje de eroare unice, care te ajută să înțelegi exact de ce a apărut o excepție. Hai să aplicăm acest lucru într-un scenariu în care ambele condiții de eroare sunt posibile. După exercițiu vom discuta de ce a fost capturat tocmai mesajul respectiv.

Acest exercițiu face parte din cursul

Tranzacții și gestionarea erorilor în PostgreSQL

Vezi cursul

Instrucțiuni pentru exercițiu

  • Construiește un handler de excepție pentru o not_null_violation.
  • Inserează "failed to insert" ca valoare pentru msg și Glucose can not be null. ca valoare pentru detail în tabela errors, dacă apare o not_null_violation.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

-- 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;
Editează și rulează codul