Bene, ho cercato di capire e leggere cosa potrebbe causarlo, ma non riesco proprio a capirlo:
Ho questo da qualche parte nel mio codice:
try{
..
m.invoke(testObject);
..
} catch(AssertionError e){
...
} catch(Exception e){
..
}
Il fatto è che, quando tenta di invocare un metodo, genera
InvocationTargetExceptioninvece un'altra eccezione prevista (in particolare ArrayIndexOutOfBoundsException). Dato che in realtà so quale metodo viene invocato, sono andato direttamente a questo codice di metodo e ho aggiunto un blocco try-catch per la linea che si suppone di lanciare ArrayIndexOutOfBoundsExceptione che è stato effettivamente lanciato ArrayIndexOutOfBoundsExceptioncome previsto. Tuttavia, quando si sale, in qualche modo cambia InvocationTargetExceptione nel codice sopra catch(Exception e)
e è InvocationTargetExceptione non ArrayIndexOutOfBoundsException
come previsto.
Cosa potrebbe causare un simile comportamento o come posso verificare una cosa del genere?