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
InvocationTargetExceptionau 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 ArrayIndexOutOfBoundsExceptionet il a vraiment lancé ArrayIndexOutOfBoundsExceptioncomme prévu. Pourtant, en montant, il change en quelque sorte vers InvocationTargetExceptionet dans le code ci-dessus, catch(Exception e)
e n'est InvocationTargetExceptionpas ArrayIndexOutOfBoundsException
comme prévu.
Qu'est-ce qui pourrait provoquer un tel comportement ou comment puis-je vérifier une telle chose?