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';| 1 | outside |
| 0 | inside |
| 0 | inside poste outside |
| 0 | Boom! |
| 0 | eraron |
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.)