我在Android中有以下Java代码
Method getIfaceMethod =
service.getClass().getDeclaredMethod("getIface", new Class<?>[0]);
getIfaceMethod.invoke(param1)));
有时,当它无法通过反射调用方法时会抛出异常。抛出的异常是UnspportedOperationException。奇怪的是,当我调用getCause时它返回自己 - 看一下调试器的屏幕截图:
到底是什么?
答案 0 :(得分:4)
如果您查看Throwable
的{{3}},则会看到变量cause
的默认值为this
,这意味着此异常的原因包括尚未初始化。
如果您getCause()
使用Throwable
cause
方法cause
,如果;
仍然指向自己,则会看到实际应该检查并返回null。
但是,您正在使用调试器检查异常的字段(!))
,因此,不会执行此检查。