public void invoke(Object instance) throws ObjectCallbackException { try { method.invoke(instance); } catch (IllegalArgumentException e) { String signature = getSignature(); throw new ObjectCallbackException("Invalid arguments provided when invoking method: " + signature, e.getCause()); } catch (IllegalAccessException e) { String signature = getSignature(); throw new ObjectCallbackException("Method is not accessible: " + signature); } catch (InvocationTargetException e) { String signature = getSignature(); throw new ObjectCallbackException("Exception thrown when invoking method: " + signature, e.getCause()); } }