3

如果我使用method.invoke来调用一个抛出自定义异常A的方法。有什么方法可以捕获这个异常并在try catch周围的method.invoke中处理它?我能想到的唯一方法是捕获所有异常并检查异常类型;

try{
 ...
 method.invoke
 ...
} catch (A e) {

}
4

1 回答 1

4

尝试:

try {
    method.invoke
} catch (InvocationTargetException e) {
   Throwable mainException = e.getCause();
   if (mainException instanceof .....) {
   }
}

InvocationTargetException 是方法抛出的异常的包装器。

在您的情况下, mainException 将属于A类型。

于 2012-11-01T23:28:36.250 回答