Kom igångKom igång gratis

Logga meddelanden vid specifika undantag

Ett av de bästa sätten att använda fångst av flera specifika undantag är att hantera och logga unika felmeddelanden som hjälper dig att förstå exakt varför ett undantag uppstod. Vi tillämpar det här i ett scenario där båda felvillkoren är möjliga. Efter övningen går vi igenom varför just det specifika meddelandet fångades.

Den här övningen är en del av kursen

Transaktioner och felhantering i PostgreSQL

Visa kurs

Övningsinstruktioner

  • Bygg en undantagshanterare för not_null_violation.
  • Infoga "failed to insert" som msg och Glucose can not be null. som detail i tabellen errors om ett not_null_violation-undantag inträffar.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

-- 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;
Redigera och kör kod