说我有一个下面声明的方法foo()。
public class Foo
{
public static void foo() {throw new UnsupportedOperationException();}
}
然后,我有了使用反射调用该方法的代码:
Foo.class.getMethod("foo").invoke();
这将抛出该方法,InvocationTargetException
而不是UnsupportedOperationException
实际抛出的方法。
如何通过Java的反射来检索真正的异常(即UnsupportedOperationException)?
InvocationTargetException
状态的Javadoc
InvocationTargetException是一个已检查的异常,它包装了由调用的方法或构造函数引发的异常。
只需调用InvocationTargetException#getCause()
即可获取包装的异常(或者getTargetException()
如果您想成为老式的)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句