exception rethrow method from LTJake
Brandon L. Black [Tue, 19 Jun 2007 00:21:56 +0000 (00:21 +0000)]
Changes
lib/DBIx/Class/Exception.pm
t/34exception_action.t

diff --git a/Changes b/Changes
index 43a46e9..a6dca8f 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,5 +1,7 @@
 Revision history for DBIx::Class
 
+        - new method "rethrow" for our exception objects
+
 0.08001 2007-06-17 21:21:02
         - Cleaned up on_connect handling for versioned
         - removed DateTime use line from multi_create test
index 83e0255..77a3a96 100644 (file)
@@ -68,6 +68,17 @@ sub throw {
     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 <blblack@gmail.com>
index 7fef551..8fd70ba 100644 (file)
@@ -5,7 +5,7 @@ use Test::More;
 use lib qw(t/lib);
 use DBICTest;
 
-plan tests => 6;
+plan tests => 8;
 
 # Set up the "usual" sqlite for DBICTest
 my $schema = DBICTest->init_schema;
@@ -19,6 +19,12 @@ my $ex_regex = qr/Odd number of arguments to search/;
 
 # Basic check, normal exception
 eval { throwex };
+my $e = $@; # like() seems to stringify $@
+like($@, $ex_regex);
+
+# Re-throw the exception with rethrow()
+eval { $e->rethrow };
+isa_ok( $@, 'DBIx::Class::Exception' );
 like($@, $ex_regex);
 
 # Now lets rethrow via exception_action