Eh bien, j'ai essayé de comprendre et de lire ce qui pourrait en être la cause, mais je n'arrive pas à comprendre:
J'ai ceci quelque part dans mon code:
try{
..
m.invoke(testObject);
..
} catch(AssertionError e){
...
} catch(Exception e){
..
}
La chose est que, lorsqu'il essaie d'invoquer une méthode, il lève
InvocationTargetException
au lieu d'une autre exception attendue (en particulier ArrayIndexOutOfBoundsException
). Comme je sais réellement quelle méthode est invoquée, je suis allé directement à ce code de méthode et j'ai ajouté un bloc try-catch pour la ligne qui suppose de lancer ArrayIndexOutOfBoundsException
et il a vraiment lancé ArrayIndexOutOfBoundsException
comme prévu. Pourtant, en montant, il change en quelque sorte vers InvocationTargetException
et dans le code ci-dessus, catch(Exception e)
e n'est InvocationTargetException
pas ArrayIndexOutOfBoundsException
comme prévu.
Qu'est-ce qui pourrait provoquer un tel comportement ou comment puis-je vérifier une telle chose?