Cursus Raku / Objecten, in- en uitvoer en excepties / Excepties / Excepties opvangen met try

Quiz — try

Wat drukt het volgende programma af?

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

say 'outside';
1outside
0inside
0inside en dan outside
0Boom!
0een fout

Er gebeuren hier twee dingen. Ten eerste breekt die de rest van het try-blok onmiddellijk af, dus de regel say 'inside' wordt nooit bereikt — er wordt vanuit het blok niets afgedrukt. Ten tweede stopt het programma zelf niet, omdat try de exceptie vangt: de uitvoering gaat voorbij het blok verder en say 'outside' draait gewoon. De enige afgedrukte regel is dus outside. ($r zou ongedefinieerd zijn, en de melding Boom! zou in $! klaarstaan als je zou kijken.)

Cursusnavigatie

Oplossing: Proberen of standaardwaarde   |   De CATCH-phaser