In the previous sections, we have seen that exceptions in Perl 6 use the object-oriented approach, which, in particular, helps to distinguish between different exceptions in the CATCH block.
In this section, we will create a custom exception that is integrated into the Perl 6 system as smoothly as any other built-in classes in the X:: namespace. If you do not have any special requirements, create your custom exception classes in the same namespace.
For example, let us create a Lift class together with the X::Lift::Overload exception, which will be triggered when too many people enter the lift:
class Lift { class X::Lift::Overload is Exception { method message { 'Too many people!' } } has $.capacity = 5; has $!people; method enter(Int $n = 1) { $!people += $n; X::Lift::Overload...