3

method.invoke を使用して、カスタム例外 A をスローするメソッドを呼び出した場合、この例外をキャッチして、method.invoke を囲む try catch で処理する方法は何ですか? 私が考えることができる唯一の方法は、すべての例外をキャッチして例外の種類を確認することです。

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 に答える