IniziaInizia gratis

Gestire le eccezioni

Nelle diapositive abbiamo parlato di fornire il contesto corretto per la risoluzione. Un aspetto spesso trascurato quando si registrano i messaggi è la motivazione più profonda che li spiega. Spesso gli errori sono generici, come "Valore non valido" o "Data non valida". Possiamo però arricchire questi messaggi con dettagli e contesto.

Qui lavoreremo con l'A1C, cioè la percentuale di globuli rossi che hanno zucchero legato all'emoglobina. In genere, per i pazienti non affetti i valori a digiuno sono inferiori al 5,7%, tra il 5,7% e il 6,4% indicano prediabete, e oltre il 6,5% è in genere un indicatore di diabete non gestito.

Questo esercizio fa parte del corso

Transazioni e gestione degli errori in PostgreSQL

Visualizza il corso

Istruzioni dell'esercizio

  • Completa il blocco di transazione compilando le istruzioni DO e BEGIN dove necessario.
  • Aggiungi un'eccezione che inserisca 'a1c is typically less than 14' nella colonna context della tabella errors.
  • Termina l'eccezione specificando il linguaggio procedurale utilizzato.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

-- Add a DO function
___ $$ 
-- BEGIN a transaction block
___ 
    INSERT INTO patients (a1c, glucose, fasting) 
    values (20, 89, TRUE);

-- Add an EXCEPTION                   
____ 
-- Catch all exception types
WHEN others THEN
    INSERT INTO errors (msg, detail, ___) VALUES 
  (
    'failed to insert', 
    'This a1c value is higher than clinically accepted norms.', 
    '___'
  );
END;
-- Make sure to specify the language
____ language 'plpgsql';

-- Select all the errors recorded
SELECT * FROM errors;
Modifica ed esegui il codice