Yah, saya sudah mencoba memahami dan membaca apa yang menyebabkannya, tetapi saya tidak bisa mendapatkannya:
Saya punya ini di suatu tempat dalam kode saya:
try{
..
m.invoke(testObject);
..
} catch(AssertionError e){
...
} catch(Exception e){
..
}
Masalahnya adalah, ketika ia mencoba untuk memanggil beberapa metode itu melempar
InvocationTargetException
bukannya beberapa pengecualian yang diharapkan lainnya (khusus ArrayIndexOutOfBoundsException
). Ketika saya benar-benar tahu metode apa yang dipanggil saya langsung ke kode metode ini dan menambahkan blok try-catch untuk garis yang ArrayIndexOutOfBoundsException
seharusnya melempar dan itu benar-benar melempar ArrayIndexOutOfBoundsException
seperti yang diharapkan. Namun ketika naik itu entah bagaimana berubah menjadi InvocationTargetException
dan dalam kode di atas catch(Exception e)
e adalah InvocationTargetException
dan tidak ArrayIndexOutOfBoundsException
seperti yang diharapkan.
Apa yang bisa menyebabkan perilaku seperti itu atau bagaimana saya bisa memeriksa hal seperti itu?