X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/ac5522802741d3092b371ab6b57199cb8a587bf9..53593baa211863fbf66540cf1bcc36c8fb37257f:/SL/DB/Helper/Metadata.pm diff --git a/SL/DB/Helper/Metadata.pm b/SL/DB/Helper/Metadata.pm index 9ce1f1192..c65bb283d 100644 --- a/SL/DB/Helper/Metadata.pm +++ b/SL/DB/Helper/Metadata.pm @@ -1,6 +1,7 @@ package SL::DB::Helper::Metadata; use strict; +use SL::X; use Rose::DB::Object::Metadata; use SL::DB::Helper::ConventionManager; @@ -31,4 +32,18 @@ sub make_attr_auto_helpers { SL::DB::Helper::Attr::auto_make($self->class); } +sub handle_error { + my($self, $object) = @_; + + # these are used as Rose internal canaries, don't wrap them + die $object->error if UNIVERSAL::isa($object->error, 'Rose::DB::Object::Exception'); + + SL::X::DBRoseError->throw( + db_error => $object->error, + class => ref($object), + metaobject => $self, + object => $object, + ); +} + 1;