Bueno, he tratado de entender y leer lo que podría causarlo, pero no puedo entenderlo:
Tengo esto en algún lugar de mi código:
try{
..
m.invoke(testObject);
..
} catch(AssertionError e){
...
} catch(Exception e){
..
}
La cosa es que, cuando intenta invocar algún método, lanza en
InvocationTargetException
lugar de alguna otra excepción esperada (específicamente ArrayIndexOutOfBoundsException
). Como realmente sé qué método se invoca, fui directamente a este código de método y agregué un bloque try-catch para la línea que se supone que debe lanzar ArrayIndexOutOfBoundsException
y realmente arrojó ArrayIndexOutOfBoundsException
como se esperaba. Sin embargo, al subir, de alguna manera cambia a InvocationTargetException
y en el código anterior, catch(Exception e)
e es InvocationTargetException
y no ArrayIndexOutOfBoundsException
como se esperaba.
¿Qué podría causar tal comportamiento o cómo puedo verificarlo?