Kurso de Raku / Objektoj, en- kaj eligo kaj escepto / Esceptoj / Kapti esceptojn per try

Kvizo — try

Kion presas la jena programo?

my $r = try {
    die 'Boom!';
    say 'inside';
};

say 'outside';
1outside
0inside
0inside poste outside
0Boom!
0eraron

Du aferoj okazas ĉi tie. Unue, die tuj ĉesigas la reston de la bloko try, do la linio say 'inside' neniam estas atingata — nenio estas presata el ene de la bloko. Due, ĉar try kaptas la escepton, la programo mem ne haltas: la ekzekuto daŭras preter la bloko, kaj say 'outside' ruliĝas normale. Do la sola presita linio estas outside. ($r estus nedifinita, kaj la mesaĝo Boom! atendus en $!, se vi rigardus.)

Kursa navigado

Solvo: Provo aŭ defaŭlta valoro   |   La fazero CATCH