InvocationTargetExceptionのターゲット例外をどのように再スローしますか?私はリフレクションを使用して自分のクラスの中でinvoke()メソッドを呼び出すメソッドを持っています。しかし、コード内に例外がスローされた場合、私はInvocationTargetExceptionを気にせず、ターゲット例外のみを必要とします。ここに例があります:InvocationTargetExceptionターゲット例外を再スローする
public static Object executeViewComponent(String name, Component c,
HttpServletRequest request) throws Exception {
try {
return c.getClass()
.getMethod(c.getMetaData().getMethod(), HttpServletRequest.class)
.invoke(c, request);
} catch (InvocationTargetException e) {
// throw the target exception here
}
}
私が直面している主な問題は、呼び出しているe.getCause(); ExceptionをスローしないでThrowableをスローします。おそらく私はこれに間違って近づいていますか?
catch (XXXException e)
{
throw e;
}
+1型チェックの追加。 –
InvocationTargetExceptionに対してどのように 'null'の原因がありますか? –
この例外がMethod.invoke()によってスローされたときは、これが原因ではないと思いますが、InvocationTargetExceptionにはnullターゲットを許可するコンストラクタがあるため、nullの可能性があります。例外がスローされたInvocationTargetException内にエラーがラップされている場合、私はMethod.invoke APIのdocから確かにわかりません。 –