Nun, ich habe versucht zu verstehen und zu lesen, was es verursachen könnte, aber ich kann es einfach nicht verstehen:
Ich habe das irgendwo in meinem Code:
try{
..
m.invoke(testObject);
..
} catch(AssertionError e){
...
} catch(Exception e){
..
}
Die Sache ist, dass, wenn es versucht, eine Methode aufzurufen, es
InvocationTargetExceptionanstelle einer anderen erwarteten Ausnahme (speziell ArrayIndexOutOfBoundsException) auslöst . Da ich tatsächlich weiß, welche Methode aufgerufen wird, ging ich direkt zu diesem Methodencode und fügte einen Try-Catch-Block für die Zeile hinzu, die geworfen werden soll, ArrayIndexOutOfBoundsExceptionund er warf wirklich ArrayIndexOutOfBoundsExceptionwie erwartet. Doch wenn es hochgeht, ändert es sich irgendwie zu InvocationTargetExceptionund im obigen Code. catch(Exception e)
E ist InvocationTargetExceptionund nicht ArrayIndexOutOfBoundsException
wie erwartet.
Was könnte ein solches Verhalten verursachen oder wie kann ich so etwas überprüfen?