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
Istruzioni dell'esercizio
- Crea un gestore di eccezioni per
not_null_violation. - Inserisci
"failed to insert"comemsgeGlucose can not be null.comedetailnella tabellaerrorsse si verifica unanot_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;