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
InvocationTargetException
invece 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 ArrayIndexOutOfBoundsException
e che è stato effettivamente lanciato ArrayIndexOutOfBoundsException
come previsto. Tuttavia, quando si sale, in qualche modo cambia InvocationTargetException
e nel codice sopra catch(Exception e)
e è InvocationTargetException
e non ArrayIndexOutOfBoundsException
come previsto.
Cosa potrebbe causare un simile comportamento o come posso verificare una cosa del genere?