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