Corso di Raku / Oggetti, input/output ed eccezioni / Eccezioni / Intercettare le eccezioni con try / Exercises / Intercettate l’errore

Soluzione: Intercettate l’errore

Ecco una possibile soluzione del compito.

Codice

my $ok = try { 6 * 7 };
say $ok;

my $bad = try { die 'broken' };
say $bad.defined;
say $!.message;

🦋 Trova il programma nel file catch-the-error.raku.

Output

42
False
broken

Commenti

  1. Quando il blocco gira senza errori, try vale semplicemente il valore del blocco, quindi $ok contiene 42.

  2. Il die dentro il secondo blocco solleva un’eccezione, quindi quel blocco vale un valore non definito e $bad.defined è False.

  3. L’eccezione intercettata è conservata nella variabile speciale $!, e $!.message restituisce il testo che le è stato dato, broken.

Intercettate l’errore   |   Quando non va storto nulla