Make Catalyst::Exception throw exception instances instead of plain strings.
Florian Ragwitz [Fri, 26 Jun 2009 15:27:19 +0000 (15:27 +0000)]
lib/Catalyst/Exception.pm

index 4959e42..0ee0fa0 100644 (file)
@@ -50,11 +50,12 @@ sub throw {
     my $class  = shift;
     my %params = @_ == 1 ? ( error => $_[0] ) : @_;
 
-    my $message = $params{message} || $params{error} || $! || '';
+    $params{message} = $params{message} || $params{error} || $! || '';
+    my $error = $class->new(%params);
 
     local $Carp::CarpLevel = 1;
 
-    croak($message);
+    croak($error);
 }
 
 =head2 meta