前一段时间做项目的时候遇到了InvocationTargetException异常,这是个很奇怪的异常。原本通过反射去调用类里面的方法,该方法里面抛出的异常都是InvocationTargetException。这个异常的getMessage返回值为空,并没有覆写Exception的getMessage方法。所以如果要得到InvocationTargetException的这个异常信息。需要getTargetException得到这个目标异常信息。
比方说:
@Override
public String callService(String head, String body) {
// TODO Auto-generated method stub
BaseReturn baseReturn = new BaseReturn();
try {
checkInputParam(head, body);
return exec(head, body);
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
logger.error(e.getTargetException().getMessage());
baseReturn.setResultCode(Common.FAIL);// 设置错误结果码
baseReturn.setErrorInfo(e.getTargetException().getMessage());// 设置错误信息
e.printStackTrace();
} catch (Exception e) {
logger.error(e.getMessage());
baseReturn.setResultCode(Common.FAIL);// 设置错误结果码
baseReturn.setErrorInfo(e.getMessage());// 设置错误信息
e.printStackTrace();
}
return JSONObject.toJSONString(baseReturn);
}
以上代码这样写,可以兼容所有异常。如果抛出的是InvocationTargetException则直接捕获。如果是其他异常则让Exception 去捕获。
相关推荐
标题中的“解决axis2-CodegenWizardPluginBUG- java.lang.reflect.InvocationTargetException”指的是在使用Apache Axis2的CodegenWizardPlugin工具时遇到的一个错误。这个工具是Axis2框架的一部分,用于自动生成...
如果方法内部抛出了异常,但没有被捕获和处理,就会导致InvocationTargetException。 3. **数据验证**:确保传入服务的方法参数有效且符合预期。无效或不匹配的数据类型可能导致运行时异常。 4. **配置检查**:...
`AssertionError`是Java中用于断言失败的异常,而`InvocationTargetException`则是在调用方法时抛出的异常,通常与方法内部的异常处理有关。 解决这个问题的方法可能有以下几点: 1. **检查版本兼容性**:确保你的...
import java.lang.reflect.InvocationTargetException; import java.sql.Timestamp; import java.util.Collection; import java.util.Date; import java.util.Map; import java.util.Map.Entry; import org.apache....
9. **java.lang.reflect.InvocationTargetException** 当调用方法时,如果被调用的方法抛出了异常,那么这个异常会被封装在这个InvocationTargetException中。在JSP中,这可能发生在使用反射API执行方法时。 10. *...
import java.lang.reflect.InvocationTargetException; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import java.util.List; import org.eclipse.core.runtime....
11. **反射异常**:不当使用`Class.forName()`或`Method.invoke()`可能导致`ClassNotFoundException`和`InvocationTargetException`。书中会解释如何安全地使用反射。 12. **异常链**:当一个异常在处理另一个异常...
需要注意的是,BeanUtils在处理类型转换时可能会抛出异常,如`IllegalAccessException`, `InvocationTargetException`等,因此在实际使用中需要进行异常处理。 在提供的课件“JavaWeb程序设计入门课件BeanUtils工具...
} catch (IllegalAccessException | InvocationTargetException e) { e.printStackTrace(); } ``` #### 2.2 属性获取(getProperty) 与之对应的是`getProperty()`方法,用于获取JavaBean的属性值: ```java try...
- 调用BeanUtils方法时,可能会抛出IllegalAccessException和InvocationTargetException,需要进行异常处理。 - 如果属性名不完全匹配或者类型转换失败,BeanUtils会抛出异常,因此需要确保对象属性名的正确性和类型...
- 需要捕获 `IllegalAccessException`、`NoSuchMethodException` 和 `InvocationTargetException` 异常。 - 这里假设 `Hashtable` 中存储的是 `ClassA`、`ClassB` 和 `ClassC` 类的对象,且这些类中都定义了名为 `...
在使用过程中,可能会遇到`InvocationTargetException`这样的异常。通常,这表示在调用Web服务时发生了错误。以下是一些可能的解决方案: 1. **检查网络连接**: 确保你的机器能够访问Web服务所在的服务器。 2. **...
4. 处理异常:在处理JavaBean属性时,BeanUtils会捕获并处理可能出现的异常,如`IllegalAccessException`和`InvocationTargetException`等,这使得代码更加简洁,降低了处理异常的复杂性。 5. 国际化支持...
- **处理异常**:由于BeanUtils操作涉及反射,可能出现`IllegalAccessException`或`InvocationTargetException`等异常,需要进行捕获处理。 3. **使用示例**: - **训练案例3**:创建一个`Cat`类,包含name、age...
5. **处理异常**:反射调用方法时可能会抛出异常,如`IllegalAccessException`、`InvocationTargetException`等,我们需要捕获这些异常并适当地处理,通常意味着测试失败。 6. **结果报告**:在执行每个测试方法后...
5. **错误处理**:由于涉及到操作系统级别的交互,我们需要处理可能出现的异常,如`NullPointerException`、`InvocationTargetException`等。 Jacob库为Java开发者提供了一个方便的工具,使他们能够在没有Microsoft...
51. `java.lang.reflect.InvocationTargetException`:当调用反射方法时抛出的异常。 52. `java.util.logging.Level`:日志级别,用于控制日志输出的详细程度。 53. `java.lang.reflect.Field`:Field类代表类的...
} catch (IllegalAccessException | InvocationTargetException e) { // 处理异常... } ``` 以上就是关于“java反射-在form提交的一些应用”的主要知识点,包括如何利用反射处理表单数据、源码分析以及工具的使用...
反射操作可能会抛出异常,如`ClassNotFoundException`,`InstantiationException`,`IllegalAccessException`和`InvocationTargetException`。在使用反射时,应该适当地捕获这些异常。 8. **实际应用** 反射在很...