Corso di Raku / Oggetti, input/output ed eccezioni / Eccezioni / Oggetti eccezione / Exercises / Indicate l’errore
Soluzione: Indicate l’errore
Ecco una possibile soluzione del compito.
Codice
sub risky {
die 'sub failed';
}
{
risky();
CATCH {
default {
say .^name;
say .message;
}
}
}🦋 Trova il programma nel file name-the-error.raku.
Output
X::AdHoc
sub failedCommenti
Il
dieavviene dentrorisky, ma l’eccezione viaggia fino al chiamante. IlCATCHnel blocco che ha chiamatoriskyla gestisce, ed è così che la gestione degli errori funziona normalmente: il fallimento e il suo gestore non devono stare nella stessa routine.Un semplice
diecon una stringa crea un’eccezioneX::AdHoc, che.^nameriferisce, e.messagerestituisce il testo passato adie.