Java 捕获方法.invoke()中的自定义异常

Java 捕获方法.invoke()中的自定义异常,java,exception,exception-handling,Java,Exception,Exception Handling,如果我使用method.invoke调用一个抛出自定义异常的方法a,那么捕获此异常并在try catch-arounding method.invoke中处理它的方法是什么?我能想到的唯一方法是捕获所有异常并检查异常类型 try{ ... method.invoke ... } catch (A e) { } 尝试: InvocationTargetException是该方法引发的异常的包装器 在您的情况下,mainException将是A类型。或尝试{throw e.getCause

如果我使用method.invoke调用一个抛出自定义异常的方法a,那么捕获此异常并在try catch-arounding method.invoke中处理它的方法是什么?我能想到的唯一方法是捕获所有异常并检查异常类型

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

}
尝试:

InvocationTargetException是该方法引发的异常的包装器


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

尝试{throw e.getCause();}catch(A){}
Amir是正确的,请读取在哪些情况下引发异常的Javadoc。显然,您需要处理任何已检查的异常!:)
try {
    method.invoke
} catch (InvocationTargetException e) {
   Throwable mainException = e.getCause();
   if (mainException instanceof .....) {
   }
}