在最近一段时间的工作中,积累了几点异常处理的经验,怕时间久了就淡忘了,因此写下本文记录下来,一遍日后总结和查看。
1.在通过反射执行方法的时,如Method.invoke(),如果被反射执行的方法体抛出了Exception,这个异常会被包装成InvocationTargetException重新抛出,下面是jdk里面的源码:
public Object invoke(Object obj, Object... args)
throws IllegalAccessException, IllegalArgumentException,
InvocationTargetException
{
...........此处省略.....
}
比如反射方法里抛出了NullPointException,则Method.invoke方法抛出的是InvocationTargetException,而不是NullPointException,见下面的例子,此处抛出的就是InvocationTargetException。
但是InvocationTargetException太过于宽泛,在trouble shouting的时候,不能给人非常直观的信息,所以在处理反射方法异常的时候,我们需要把这个InvocationTargetException的targetException提取处理,重新抛出,因为这个才是对我们分析程序bug真正有帮助的异常:
public class InvokeException {
@SuppressWarnings("null")
public void testException(){
String nullString = null;
nullString.toString();
}
public static void main(String[] args) throws Throwable {
// TODO Auto-generated method stub
try{
InvokeException invokeException = new InvokeException();
Method method = invokeException.getClass().getMethod("testException");
method.invoke(invokeException);
}catch (Exception e) {
if(e instanceof InvocationTargetException){
throw ((InvocationTargetException) e).getTargetException();
}else{
//doXXX()
}
}
}
}
下一篇讲介绍如何利用Spring的aop来把程序中的check exception转化成自定义的uncheck exception.
- 大小: 43.4 KB
分享到:
相关推荐
NULL 博文链接:https://kdisk-sina-com.iteye.com/blog/258942
解决axis2-CodegenWizardPlugin的BUG,java.lang.reflect.InvocationTargetException 带有相关jar 包及相关文件
MyEclipse6.0下axis2插件的安装! 解决java.lang.reflect.InvocationTargetException本人亲自测试,完美使用!
scrcpy投屏 AssertionError: java.lang.reflect.InvocationTargetException 安装这个版本的scrcpy即可。
在apache上下载的axis2的eclipse插件,使用axis2-eclipse-codegen-wizard时,最后老是报InvocationTargetException异常。 现在上传的版本已经修正,和原版功能完全一样
MyEclipse axis2 wsdl java.lang.reflect.invocationtargetexception code gen 大家要注意一定要仔细,这个问题基本上缺少包引起的,而且一定要clean 如果需要axis2插件 以及这个plugins中的包在我的其他资源里面有
java.lang.reflect.invocationtargetexception问题的解决方法之一
faultString: java.lang.reflect.InvocationTargetException faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace: AxisFault faultCode: {...
免费共享,很详细的介绍了反射机制的原理,适合追根究底的java学习者
1、本测试demo使用mavan管理jar 2、重点参考TestSoapUI5 3、重写WsdlTestCaseRunner 4、需要单独配置maven仓库http://www.soapui.org/repository/maven2/
javacode发布成webservice.
主要介绍了JQuery报错"Uncaught TypeError: Illegal invocation"的处理方法,需要的朋友可以参考下
JAVA的WebService support
myeclpise+ireport+Struts2
解决使用wsdl生成java客户端报错:java.lang.reflect.invocationtargetexception的方法之一
本文中的提到的例子只为了方便本文的描述而提出,有不妥之处请见谅。 本文的读者应有JAVA web 应用开发基础。应该具有看过WSDL,SOAP,XML等的基本规范。熟悉MyEclipse开发环境。 里面带有解决:eclipse Axis2 ...
InvocationTargetException, NoSuchMethodException, SecurityException, ClassNotFoundException, IllegalStateException, IllegalBlockSizeException, BadPaddingException, NoSuchPaddingException, ...
wsdl2java, Eclipse插件及使用方法,插件已解决常见的InvocationTargetException异常问题