“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)
答案 0 :(得分:13)
呃...... method.invoke()
电话不是直接投掷的。目标方法也使用了invoke
并且它扔了,所以它冒出来了。
获得的经验:将InvocationTargetException
与其他例外分开处理。