Aan de slagGa gratis aan de slag

Berichten loggen bij specifieke exceptions

Een van de beste toepassingen van meerdere specifieke exceptions opvangen is dat je unieke foutmeldingen apart kunt afhandelen en loggen. Zo begrijp je precies waarom een exception optrad. Laten we dit toepassen in een scenario waarin beide foutcondities mogelijk zijn. Na de oefening bespreken we waarom precies dit specifieke bericht werd vastgelegd.

Deze oefening maakt deel uit van de cursus

Transacties en foutafhandeling in PostgreSQL

Cursus bekijken

Oefeninstructies

  • Bouw een exception handler voor een not_null_violation.
  • Voeg "failed to insert" in als msg en Glucose can not be null. als de detail in de tabel errors als er een not_null_violation optreedt.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

-- 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;
Code bewerken en uitvoeren