嗯,我试着去理解和解读导致它的原因,但我就是不明白:
在我的代码中有这样的代码:
try{
..
m.invoke(testObject);
..
} catch(AssertionError e){
...
} catch(Exception e){
..
}
事情是,当它试图调用一些方法时,它抛出
InvocationTargetException
而不是其他一些预期异常(特别是ArrayIndexOutOfBoundsException
)。
因为我实际上知道调用了什么方法,所以我直接进入这个方法代码,并为假定抛出ArrayIndexOutOfBoundsException
的行添加了一个try-catch块,它确实像预期的那样抛出了ArrayIndexOutOfBoundsException
。但是当你爬上去的时候
以某种方式更改为InvocationTargetException
,并在catch(Exception e)
上面的代码中
e是InvocationTargetException
而不是ArrayIndexOutOfBoundsException
如预期。< / p >
是什么导致了这样的行为或者我如何检查这样的事情?