UnsuppotedOperationException.getCause返回自身

时间:2015-11-10 09:34:55

标签: java android reflection

我在Android中有以下Java代码

Method getIfaceMethod =
            service.getClass().getDeclaredMethod("getIface", new Class<?>[0]);
getIfaceMethod.invoke(param1)));

有时,当它无法通过反射调用方法时会抛出异常。抛出的异常是UnspportedOperationException。奇怪的是,当我调用getCause时它返回自己 - 看一下调试器的屏幕截图: Debugger screen shot

到底是什么?

1 个答案:

答案 0 :(得分:4)

如果您查看Throwable的{​​{3}},则会看到变量cause的默认值为this,这意味着此异常的原因包括尚未初始化。

如果您getCause()使用Throwable cause方法cause,如果;仍然指向自己,则会看到实际应该检查并返回null。 但是,您正在使用调试器检查异常的字段(!)),因此,不会执行此检查。