IniziaInizia gratis

Registrare messaggi per eccezioni specifiche

Uno dei migliori utilizzi della gestione di più eccezioni specifiche è trattare in modo distinto e registrare messaggi di errore univoci che ti aiutino a capire esattamente perché si è verificata un'eccezione. Applichiamolo in uno scenario in cui entrambe le condizioni di errore sono possibili. Dopo l’esercizio discuteremo perché ha catturato proprio quel messaggio specifico.

Questo esercizio fa parte del corso

Transazioni e gestione degli errori in PostgreSQL

Visualizza il corso

Istruzioni dell'esercizio

  • Crea un gestore di eccezioni per not_null_violation.
  • Inserisci "failed to insert" come msg e Glucose can not be null. come detail nella tabella errors se si verifica una not_null_violation.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

-- 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;
Modifica ed esegui il codice