Corso di Raku / Oggetti, input/output ed eccezioni / Eccezioni
Intercettare le eccezioni con
try
Quando qualcosa va storto in un programma Raku — un file mancante, un
die esplicito — viene sollevata un’eccezione. Per
impostazione predefinita un’eccezione non gestita ferma il programma. Il
blocco try ti permette di eseguire codice che potrebbe
fallire senza far crollare tutto.
Avvolgi il codice rischioso in un blocco try. Se al suo
interno viene sollevata un’eccezione, il blocco si ferma lì, ma il
programma continua:
my $result = try {
die 'Boom!';
};
say "Still works";Il die viene intercettato dal try, quindi
il programma non crolla: prosegue dritto all’istruzione successiva e
stampa:
Still worksQuando il blocco fallisce così, esso vale un valore non definito,
quindi $result non è definito:
say $result.defined; # FalseL’eccezione intercettata è conservata nella variabile speciale
$!. Da lì puoi leggerne il messaggio:
say $!.message; # Boom!Così try trasforma un errore fatale in qualcosa che il
tuo programma può ispezionare e a cui può reagire. Se il blocco gira
senza alcuna eccezione, $result contiene il suo valore e
$! non è definito.
Anche in questa sezione
Pratica
Risolvi 1 quiz sul contenuto di questa sezione.
Esercizi
Questa sezione contiene 3 esercizi. Guarda tutti gli argomenti di questa sezione prima di iniziare gli esercizi.