Rules / Types, classes & roles / exception

X::Control Reference

Role for control exceptions

What it is #

Position in the hierarchy #

Examples, run three ways #

Every example below comes from the official documentation, together with the output that documentation asserts. Each was then executed by Rakudo and by Raku++ when this page was built. Where the three agree, one result is shown; where they do not, all three are — because which of them is wrong is exactly the information worth having.

1 no-output · 1 ok

role X::Control is Exception { }

Not executed: the documentation states no expected output for this example.

class CX::Vaya does X::Control {
has $.message
}

sub ea {
CONTROL {
    default {
        say "Controlled { .^name }: { .message }"
    }
}
CX::Vaya.new( message => "I messed up!" ).throw;

}
ea;
# OUTPUT: «Controlled CX::Vaya: I messed up!␤»
Output
Controlled CX::Vaya: I messed up!

Documentation, Rakudo and Raku++ all agree.