class X::Cannot::Empty
Error ReportCollection examples

Error due to inappropriate usage of an empty collection

class X::Cannot::Empty is Exception { }

Error, typically wrapped in a Failure, when inappropriately using an empty collection.

For example, the following stack implementation fails when trying to pop a value from an empty stack. Sink context causes the returned Failure to throw.

class Stack {
    my class Node {
        has $.value;
        has Node $.next;
    has Node $!next;
    method push($value{
        $!next .= new(:$value:$!next);
    method pop() {
        fail X::Cannot::Empty.new(:action<pop>:what(self.^name))
         unless $!next;
        my $value = $!next.value;
        $!next .= next;
my $stack = Stack.new.push(42);
say $stack.pop# OUTPUT: «42␤» 
try $stack.pop;
say $!.message# OUTPUT: «Cannot pop from an empty Stack␤» 


method action

method action()

Verbal description of the inappropriate action.

method what

method what()

Returns the type that was the target of the action.