Что может вызвать java.lang.reflect.InvocationTargetException? - PullRequest
286 голосов
/ 16 мая 2011

Ну, я пытался понять и прочитать, что могло вызвать это, но я просто не могу понять:

У меня есть это где-то в моем коде:

 try{
 ..
 m.invoke(testObject);
 ..
 } catch(AssertionError e){
 ...
 } catch(Exception e){
 ..
 }

Дело в том, что когда он пытается вызвать какой-то метод, он бросает InvocationTargetException вместо какого-то другого ожидаемого исключения (в частности, ArrayIndexOutOfBoundsException). Поскольку я действительно знаю, какой метод вызывается, я сразу перешел к коду этого метода и добавил блок try-catch для строки, в которой предполагается выбросить ArrayIndexOutOfBoundsException, и он действительно выдал ArrayIndexOutOfBoundsException, как ожидалось. Все же, когда идет вверх как-то меняется на InvocationTargetException и в коде выше catch(Exception e) е InvocationTargetException а не ArrayIndexOutOfBoundsException как и ожидалось.

Что может вызвать такое поведение или как я могу проверить такую ​​вещь?

Ответы [ 13 ]

0 голосов
/ 02 мая 2016

Ошибка исчезла после того, как я сделал Очистить-> Запустить xDoclet-> Запустить xPackaging.

В моем рабочем пространстве, в затмении.

0 голосов
/ 05 ноября 2014

Это исключение выдается, если базовый метод (метод, вызванный с использованием Reflection) выдает исключение.

Таким образом, если метод, который был вызван API отражения, выдает исключение (например, исключение во время выполнения)API отражения обернет исключение в InvocationTargetException.

0 голосов
/ 09 ноября 2012
  1. Список всех файлов JAR из режима Eclipse Navigator
  2. Убедитесь, что все файлы JAR находятся в двоичном режиме
...