foreach my $sub (@{ ( $hooks{$when} || { })->{ ref($object) } || [ ] }) {
my $result = ref($sub) eq 'CODE' ? $sub->($object, @args) : $object->call_sub($sub, @args);
- SL::X::DBHookError->throw(error => "${when} hook '" . (ref($sub) eq 'CODE' ? '<anonymous sub>' : $sub) . "' failed") if !$result;
+ die SL::X::DBHookError->new(when => $when,
+ hook => (ref($sub) eq 'CODE' ? '<anonymous sub>' : $sub),
+ object => $object,
+ object_type => ref($object))
+ if !$result;
}
}
An exception of C<SL::X::DBHookError> is thrown if any of the hooks
returns a falsish value.
-This function is supposed to be called by L</SL::DB::Object::load>,
-L</SL::DB::Object::save> or L</SL::DB::Object::delete>.
+This function is supposed to be called by L<SL::DB::Object/"load">,
+L<SL::DB::Object/"save"> or L<SL::DB::Object/"delete">.
=back