2
如果我使用method.invoke调用引发自定义异常的方法A.捕获此异常并在try catch周围的method.invoke中处理它的方法是什么?我能想到的唯一方法是捕获所有异常并检查异常类型;在method.invoke()中捕获自定义异常
try{
...
method.invoke
...
} catch (A e) {
}
如果我使用method.invoke调用引发自定义异常的方法A.捕获此异常并在try catch周围的method.invoke中处理它的方法是什么?我能想到的唯一方法是捕获所有异常并检查异常类型;在method.invoke()中捕获自定义异常
try{
...
method.invoke
...
} catch (A e) {
}
尝试:
try {
method.invoke
} catch (InvocationTargetException e) {
Throwable mainException = e.getCause();
if (mainException instanceof .....) {
}
}
的InvocationTargetException是由该方法抛出的异常的包装。
在你的情况下,mainException将是A类型。
或'try {throw e.getCause(); } catch(A a){}' – irreputable
埃米尔是正确的,阅读Javadoc在哪些情况下抛出异常。显然,你需要处理任何检查的异常! :) – Muel