X-Git-Url: http://wagnertech.de/git?p=kivitendo-erp.git;a=blobdiff_plain;f=SL%2FDB%2FHelper%2FMetadata.pm;fp=SL%2FDB%2FHelper%2FMetadata.pm;h=c65bb283dda195689fc06684a09221517657b94d;hp=9ce1f11929a2b07136712793b040bd65bc746c88;hb=53593baa211863fbf66540cf1bcc36c8fb37257f;hpb=deb4d2dbb676d7d6f69dfe7815d6e0cb09bd4a44 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;