| Catalyst-Runtime documentation | Contained in the Catalyst-Runtime distribution. |
Catalyst::Exception::Basic - Basic Catalyst Exception Role
package My::Exception; use Moose; use namespace::clean -except => 'meta'; with 'Catalyst::Exception::Basic'; # Elsewhere.. My::Exception->throw( qq/Fatal exception/ );
See also Catalyst and Catalyst::Exception.
This is the basic Catalyst Exception role which implements all of Catalyst::Exception::Interface.
Holds the exception message.
Stringifies the exception's message attribute. Called when the object is stringified by overloading.
Throws a fatal exception.
Rethrows a caught exception.
Provided by Moose
Catalyst Contributors, see Catalyst.pm
This library is free software. You can redistribute it and/or modify it under the same terms as Perl itself.
| Catalyst-Runtime documentation | Contained in the Catalyst-Runtime distribution. |
package Catalyst::Exception::Basic; use MooseX::Role::WithOverloading; use Carp; use namespace::clean -except => 'meta'; with 'Catalyst::Exception::Interface'; has message => ( is => 'ro', isa => 'Str', default => sub { $! || '' }, ); sub as_string { my ($self) = @_; return $self->message; } around BUILDARGS => sub { my ($next, $class, @args) = @_; if (@args == 1 && !ref $args[0]) { @args = (message => $args[0]); } my $args = $class->$next(@args); $args->{message} ||= $args->{error} if exists $args->{error}; return $args; }; sub throw { my $class = shift; my $error = $class->new(@_); local $Carp::CarpLevel = 1; croak $error; } sub rethrow { my ($self) = @_; croak $self; } 1;