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 failed

Commenti

  1. Il die avviene dentro risky, ma l’eccezione viaggia fino al chiamante. Il CATCH nel blocco che ha chiamato risky la gestisce, ed è così che la gestione degli errori funziona normalmente: il fallimento e il suo gestore non devono stare nella stessa routine.

  2. Un semplice die con una stringa crea un’eccezione X::AdHoc, che .^name riferisce, e .message restituisce il testo passato a die.

Indicate l’errore   |   Abbinate il tipo