Как возможно, что исключение "foo" не выброшено, но последующий вызов invoke () вызывает исключение ниже?
if (method.getDeclaringClass() != object.getClass())
throw new RuntimeException("foo");
method.invoke(object);
Исключение:
java.lang.IllegalArgumentException: object is not an instance of declaring class
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)