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
InvocationTargetException
anstelle 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, ArrayIndexOutOfBoundsException
und er warf wirklich ArrayIndexOutOfBoundsException
wie erwartet. Doch wenn es hochgeht, ändert es sich irgendwie zu InvocationTargetException
und im obigen Code. catch(Exception e)
E ist InvocationTargetException
und nicht ArrayIndexOutOfBoundsException
wie erwartet.
Was könnte ein solches Verhalten verursachen oder wie kann ich so etwas überprüfen?