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