好吧,我试图理解并阅读可能导致它的原因,但是我却无法理解:
我的代码中有这个地方:
try{
..
m.invoke(testObject);
..
} catch(AssertionError e){
...
} catch(Exception e){
..
}
事实是,当它尝试调用某个方法时,它会抛出InvocationTargetException
而不是其他预期的异常(特别是ArrayIndexOutOfBoundsException
)引发
。我实际上知道调用了什么方法,所以我直接转到此方法代码,并为假定要抛出的行添加了一个try-catch块 ArrayIndexOutOfBoundsException
,它确实ArrayIndexOutOfBoundsException
按预期抛出了。然而,当它上升时,以某种方式InvocationTargetException
在catch(Exception e)
e 上面的代码中进行更改是InvocationTargetException
不ArrayIndexOutOfBoundsException
符合预期的。
是什么原因导致这种行为的?我该如何检查?