Začněte nyníZačněte zdarma

Logování zpráv při konkrétních výjimkách

Jednou z největších výhod zachycování více konkrétních výjimek je možnost každou z nich zpracovat zvlášť a zaznamenat jedinečnou chybovou zprávu, která ti přesně řekne, proč k výjimce došlo. Pojďme to vyzkoušet ve scénáři, kde mohou nastat obě chybové situace. Po cvičení si vysvětlíme, proč se zachytila právě tato konkrétní zpráva.

Toto cvičení je součástí kurzu

Transakce a ošetření chyb v PostgreSQL

Zobrazit kurz

Pokyny k cvičení

  • Sestav obsluhu výjimky pro not_null_violation.
  • Vlož "failed to insert" jako msg a Glucose can not be null. jako detail do tabulky errors v případě, že nastane not_null_violation.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

-- 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;
Upravit a spustit kód