如果我使用method.invoke来调用抛出自定义异常的方法A.有什么方法可以捕获此异常并在try catch around method.invoke中处理它?我能想到的唯一方法是捕获所有异常并检查异常类型;
try{
...
method.invoke
...
} catch (A e) {
}
答案 0 :(得分:4)
尝试:
try {
method.invoke
} catch (InvocationTargetException e) {
Throwable mainException = e.getCause();
if (mainException instanceof .....) {
}
}
InvocationTargetException是方法抛出的异常的包装器。
在您的情况下,mainException的类型为 A 。