X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FException.pm;h=46a85f62acefd2e06e1aaab8e80d3e3b236e0a3a;hb=a5722c7269d6eec8621964686e52268b5a8a34aa;hp=e8e9ff78963349a669eabdc6da9f08791cdac5f4;hpb=d4daee7b54e38e4b3d3d0a77759bddc1a4ede6e5;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/Exception.pm b/lib/DBIx/Class/Exception.pm index e8e9ff7..46a85f6 100644 --- a/lib/DBIx/Class/Exception.pm +++ b/lib/DBIx/Class/Exception.pm @@ -3,8 +3,10 @@ package DBIx::Class::Exception; use strict; use warnings; -use Carp::Clan qw/^DBIx::Class/; +use Carp::Clan qw/^DBIx::Class|^Try::Tiny/; use Scalar::Util qw/blessed/; +use Try::Tiny; +use namespace::clean; use overload '""' => sub { shift->{msg} }, @@ -42,7 +44,7 @@ C<$stacktrace> tells it to use L instead of L. DBIx::Class::Exception->throw('Foo'); - eval { ... }; DBIx::Class::Exception->throw($@) if $@; + try { ... } catch { DBIx::Class::Exception->throw(shift) } =cut @@ -54,9 +56,7 @@ sub throw { # use Carp::Clan's croak if we're not stack tracing if(!$stacktrace) { - local $@; - eval { croak $msg }; - $msg = $@ + try { croak $msg } catch { $msg = shift }; } else { $msg = Carp::longmess($msg);