/usr/share/perl5/Catalyst/Exception/Basic.pm is in libcatalyst-perl 5.90103-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | 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;
=head1 NAME
Catalyst::Exception::Basic - Basic Catalyst Exception Role
=head1 SYNOPSIS
package My::Exception;
use Moose;
use namespace::clean -except => 'meta';
with 'Catalyst::Exception::Basic';
# Elsewhere..
My::Exception->throw( qq/Fatal exception/ );
See also L<Catalyst> and L<Catalyst::Exception>.
=head1 DESCRIPTION
This is the basic Catalyst Exception role which implements all of
L<Catalyst::Exception::Interface>.
=head1 ATTRIBUTES
=head2 message
Holds the exception message.
=head1 METHODS
=head2 as_string
Stringifies the exception's message attribute.
Called when the object is stringified by overloading.
=head2 throw( $message )
=head2 throw( message => $message )
=head2 throw( error => $error )
Throws a fatal exception.
=head2 rethrow( $exception )
Rethrows a caught exception.
=head2 meta
Provided by Moose
=head1 AUTHORS
Catalyst Contributors, see Catalyst.pm
=head1 COPYRIGHT
This library is free software. You can redistribute it and/or modify
it under the same terms as Perl itself.
=cut
|