了解 Java 中的调用目标异常包装
understanding Invocation Target Exception wrapping in Java
m 是一种方法,我想通过反射在特定实例上调用它。
下面的代码展示了我是如何进行调用的:
try {
m.invoke(classInstance);
} catch (OOPAssertionError e) {
} catch (Exception e) {
system.out(e.getCause().getClass().getName());
}
现在,当我调用我刚才尝试调用的特定方法时,实例假设抛出以下 class,即前面代码中的 m:
public class OOPAssertionError extends AssertionError {
}
我以为程序会捕获 OOPAssertionError,但实际上它捕获了 Exception。
并打印以下行:"package.OOPAssertionError".
为什么会这样?
InvocationTargetException
包装你的方法的异常,就像在 javadoc 中写的那样。
有关详细信息,请参阅 What could cause java.lang.reflect.InvocationTargetException?。
祝你好运! ;)
m 是一种方法,我想通过反射在特定实例上调用它。 下面的代码展示了我是如何进行调用的:
try {
m.invoke(classInstance);
} catch (OOPAssertionError e) {
} catch (Exception e) {
system.out(e.getCause().getClass().getName());
}
现在,当我调用我刚才尝试调用的特定方法时,实例假设抛出以下 class,即前面代码中的 m:
public class OOPAssertionError extends AssertionError {
}
我以为程序会捕获 OOPAssertionError,但实际上它捕获了 Exception。 并打印以下行:"package.OOPAssertionError".
为什么会这样?
InvocationTargetException
包装你的方法的异常,就像在 javadoc 中写的那样。
有关详细信息,请参阅 What could cause java.lang.reflect.InvocationTargetException?。
祝你好运! ;)