好吧,我试图理解并阅读可能导致它的原因,但我却无法理解:
我的代码中有这个地方:
try{
..
m.invoke(testObject);
..
} catch(AssertionError e){
...
} catch(Exception e){
..
}
事实是,当它尝试调用某些方法时,它将引发InvocationTargetException
而不是其他预期的异常(特别是ArrayIndexOutOfBoundsException
)抛出 。我实际上知道调用了什么方法,所以我直接转到该方法代码,并为应该抛出的行添加了一个try-catch
块 ArrayIndexOutOfBoundsException
,它实际上ArrayIndexOutOfBoundsException
按预期抛出。然而,当它上升时,以某种方式更改了e InvocationTargetException
上面的代码并没有 按预期进行。catch(Exception e)InvocationTargetExceptionArrayIndexOutOfBoundsException
是什么原因导致这种行为的?我该如何检查?
通过使用反射调用方法,你已经添加了额外的抽象级别。反射层将任何异常包装在中InvocationTargetException
,该参数可让你分辨出反射调用失败(例如,你的参数列表无效)实际导致的异常与所调用方法中的失败之间的区别。
只需解开内的原因InvocationTargetException
,你就可以找到原始原因。
问题内容: 即使模型类中没有验证约束,我也会收到此错误(所有成员变量均已正确设置,但我在创建对象时仍然遇到此异常)。如何调试此错误? 问题答案: 每个都有一个数组。每个显示了您要保留的bean的哪个属性被侵犯。正如@Arthur正确指出的那样,违反Java持久性注释的结果也以s 结尾。 要调试你的问题,我会暂时赶在并打印出每个如下:
为什么我在下面的代码段中的X轴上有一个溢出? 在我的网格容器上应用时,就会产生溢出。 null null https://codepen.io/anon/pen/wdjexz?editors=1100
应用程序可以持久化用户,以后可以修改。最近无法修改用户,引发了异常。用户实体被持久化,没有错误或验证。有人知道是什么导致了这种行为,或者我如何找到更多细节吗?
问题内容: 遇到一个错误地使用 而不是 在其代码中的人,它没有显示为编译错误。 是因为 是相同的 ? 问题答案: 没有编译错误,因为它是有效的(尽管相当无用) 一元运算符 ,其使用方式与以下方式相同: Java语言规范中的相关部分是Unary Plus运算符+(第15.15.3节) 。它指定调用一元运算会导致操作数的一元数值提升(第5.6.1节)。这意味着: * 如果操作数是编译时类型的,,,或,
我正在玩rxjava,发现如果在活动被销毁之前没有完成订阅,则存在内存泄漏的风险,因为“可观察对象保留对上下文的引用”。如果订阅没有取消订阅,则此类情况的演示之一如下所示。已销毁(来源:https://github.com/dlew/android-subscription-leaks/blob/master/app/src/main/java/net/danlew/rxsubscriptions
我在Ubuntu 14.04上安装了redis,而且我似乎几乎每周都有完成RDB快照的问题。Redis版本是3.0.4 64位。 3838:M 24 Feb 09:46:28.826*后台保存成功终止 3838:M 24 Feb 09:47:29.088*在60秒内更改100000次。拯救 3838:M 24 Feb 09:47:29.230*后台保存由pid 17281启动 17281:信号处理