Alguém saberia me explicar que erro é esse
java.lang.reflect.InvocationTargetException
Ocorre quando há algum problema na chamada de um método via Reflection.
Isso mesmo. É o “wrapper” para Exception que foi jogada no método executado via Reflection.
package examples;
import java.lang.reflect.*;
public class ReflectionExample {
public ReflectionExample() {
}
public static void main(String[] args) {
ReflectionExample ref = new ReflectionExample();
Class[] paramTypes = new Class[1];
paramTypes[0] = Integer.TYPE;
Class ourClass = ref.getClass();
Method method = null;
try {
method = ourClass.getMethod("metodoChamadaViaReflection", paramTypes);
}
catch (SecurityException ex) {
ex.printStackTrace();
}
catch (NoSuchMethodException ex) {
ex.printStackTrace();
}
Object[] params = new Object[1];
params[0] = new Integer(-1);
try {
method.invoke(ref, params);
}
catch (InvocationTargetException ex1) {
System.out.println("InvocationTargetException: " + ex1.getTargetException().getMessage());
}
catch (IllegalArgumentException ex1) {
ex1.printStackTrace();
}
catch (IllegalAccessException ex1) {
ex1.printStackTrace();
}
}
public void metodoChamadaViaReflection(int valor) throws Exception {
if(valor < 0) throw new Exception("o valor foi menos que zero.");
}
}
O nosso metodo aqui que tá sendo chamado, joga um exception, e daí, Reflection joga um InvocationTargetException com nosso Exception por dentro.
Faz sentido?
System.out.println("InvocationTargetException: " + ex1.getTargetException().getMessage());
Vai imprimir
[quote]InvocationTargetException: o valor foi menos que zero.
[/quote]
na tela.
Olá,
A solução depende do seu problema, e a InvocationTargetException provavelmente não é o problema. É só consequencia. Ajudaria se você pudesse descrever seu problema mais detalhadamente.
[]s,
Sami
Possivelmente o método que está sendo invocado pelo refletor, possui algum tratamento de excessões. Remova-o, e verifique se era isso mesmo. Abraços.
Olá !
No meu caso isso aconteceu qdo. trouxe um projeto do serviço para casa…
Depois que abri o projeto, ao clicar com o botão direito do mouse em um componente ( textField por exemplo ), ocorre o erro.
Alguém tem idéia do que possa ser ?
Att.,
Kerone Jr.
:roll:
kerone, voce conseguiu resolver esse problema? Estou com o mesmo problema, trouxe o codigo do lab. para casa e começou a disparar essa exception.
Obrigado!
pablotiburcio, no meu caso havia uma diferença nas bibliotecas que utilizava no serviço e as que tinha em casa. Depois que deixei o ambiente de casa igual ao do serviço o problema não aconteceu mais.
[]'s!
Vou verificar isso então, Obrigado!