Rules / Types, classes & roles / exception
X::Control Reference
Role for control exceptions
What it is #
Position in the hierarchy #
| Inherits from | — |
| Does | — |
| Consumed by | CX::Next, CX::Redo, CX::Redo, CX::Done, CX::Last, CX::Return, CX::Emit, CX::Take, CX::Warn, CX::Succeed, CX::Proceed |
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.