X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=blobdiff_plain;f=lib%2FCatalyst%2FException.pm;h=75064830f360abb46d90d78e3c109b9f7a50f24b;hp=6956f0e15b9ff77ba6c8a47598a06e470a9a2cfb;hb=b007fcc611c8584b634e27a60ebfe5b6f518601a;hpb=44b74e6a6e88f3a3e2d320100edf4b84980b7c60 diff --git a/lib/Catalyst/Exception.pm b/lib/Catalyst/Exception.pm index 6956f0e..7506483 100644 --- a/lib/Catalyst/Exception.pm +++ b/lib/Catalyst/Exception.pm @@ -2,12 +2,6 @@ package Catalyst::Exception; # XXX: See bottom of file for Exception implementation -package Catalyst::Exception::Base; - -use Moose; -use Carp; -use namespace::clean -except => 'meta'; - =head1 NAME Catalyst::Exception - Catalyst Exception Class @@ -32,39 +26,6 @@ This is the Catalyst Exception class. Throws a fatal exception. -=cut - -has message => ( - is => 'ro', - isa => 'Str', -); - -use overload - q{""} => \&as_string, - fallback => 1; - -sub as_string { - my ($self) = @_; - return $self->message; -} - -sub throw { - my $class = shift; - my %params = @_ == 1 ? ( error => $_[0] ) : @_; - - $params{message} = $params{message} || $params{error} || $! || ''; - my $error = $class->new(%params); - - local $Carp::CarpLevel = 1; - - croak $error; -} - -sub rethrow { - my ($self) = @_; - croak $self; -} - =head2 meta Provided by Moose @@ -80,19 +41,30 @@ it under the same terms as Perl itself. =cut -Catalyst::Exception::Base->meta->make_immutable; - -package Catalyst::Exception; +{ + package Catalyst::Exception::Base; -use Moose; -use namespace::clean -except => 'meta'; + use Moose; + use namespace::clean -except => 'meta'; -use vars qw[$CATALYST_EXCEPTION_CLASS]; + with 'Catalyst::Exception::Basic'; -BEGIN { - extends($CATALYST_EXCEPTION_CLASS || 'Catalyst::Exception::Base'); + __PACKAGE__->meta->make_immutable; } -__PACKAGE__->meta->make_immutable; +{ + package Catalyst::Exception; + + use Moose; + use namespace::clean -except => 'meta'; + + use vars qw[$CATALYST_EXCEPTION_CLASS]; + + BEGIN { + extends($CATALYST_EXCEPTION_CLASS || 'Catalyst::Exception::Base'); + } + + __PACKAGE__->meta->make_immutable; +} 1;