X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FException.pm;h=e8e9ff78963349a669eabdc6da9f08791cdac5f4;hb=974fe5e894412569f1252a95cf62612fef5f687d;hp=83e025500471e847b61e8b10b7c0e9e7e5c3911c;hpb=4981dc70e16bbd2036d351c1130b55f2d673a5f9;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/Exception.pm b/lib/DBIx/Class/Exception.pm index 83e0255..e8e9ff7 100644 --- a/lib/DBIx/Class/Exception.pm +++ b/lib/DBIx/Class/Exception.pm @@ -16,8 +16,8 @@ DBIx::Class::Exception - Exception objects for DBIx::Class =head1 DESCRIPTION -Exception objects of this class are used in internally by -he default error handling of L +Exception objects of this class are used internally by +the default error handling of L to prevent confusing and/or redundant re-application of L's stack trace information. @@ -49,8 +49,8 @@ L. sub throw { my ($class, $msg, $stacktrace) = @_; - # Don't re-encapsulate multiple times - die $msg if blessed($msg) && $msg->isa('DBIx::Class::Exception'); + # Don't re-encapsulate exception objects of any kind + die $msg if blessed($msg); # use Carp::Clan's croak if we're not stack tracing if(!$stacktrace) { @@ -61,13 +61,24 @@ sub throw { else { $msg = Carp::longmess($msg); } - + my $self = { msg => $msg }; bless $self => $class; die $self; } +=head2 rethrow + +This method provides some syntactic sugar in order to +re-throw exceptions. + +=cut + +sub rethrow { + die shift; +} + =head1 AUTHORS Brandon L. Black