What could cause java.lang.reflect.InvocationTargetException?

Well, I’ve tried to understand and read what could cause it but I just can’t get it:

I have this somewhere in my code:

 try{
 ..
 m.invoke(testObject);
 ..
 } catch(AssertionError e){
 ...
 } catch(Exception e){
 ..
 }

Thing is that, when it tries to invoke some method it throws
InvocationTargetException instead of some other expected exception (specifically ArrayIndexOutOfBoundsException).
As I actually know what method is invoked I went straight to this method code and added a try-catch block for the line that suppose to throw ArrayIndexOutOfBoundsException and it really threw ArrayIndexOutOfBoundsException as expected. Yet when going up it
somehow changes to InvocationTargetException and in the code above catch(Exception e)
e is InvocationTargetException and not ArrayIndexOutOfBoundsException
as expected.

What could cause such a behavior or how can I check such a thing?

14 Answers
14

Leave a Comment