X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/10150f2fb96a248c46b65cea5859d7f1dd11340e..c5dccb51a821e57f3888370bea51dab9f82c0639:/SL/DB/Helper/Metadata.pm diff --git a/SL/DB/Helper/Metadata.pm b/SL/DB/Helper/Metadata.pm index 9ce1f1192..4eaa106f4 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'); + + die SL::X::DBRoseError->new( + error => $object->error, + class => ref($object), + metaobject => $self, + object => $object, + ); +} + 1;