您当前的位置: 首页 >  ar

xiangzhihong8

暂无认证

  • 0浏览

    0关注

    1324博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

InvocationTargetException异常解析

xiangzhihong8 发布时间:2016-03-14 14:51:39 ,浏览量:0

InvocationTargetException异常由Method.invoke(obj, args...)方法抛出。当被调用的方法的内部抛出了异常而没有被捕获时,将由此异常接收。

示例:

[java]  view plain  copy
 print ?
  1. package com.zzj.test.reflect;  
  2.   
  3. public class Reflect {  
  4.     public void run(int i) throws ZeroException {  
  5.         B b = new B();  
  6.         b.run(i);  
  7.     }  
  8. }  
  9.   
  10. class B {  
  11.     public void run(int i) throws ZeroException {  
  12.         if (i  clazz = Class.forName("com.zzj.test.reflect.Reflect");  
  13.             Method method = clazz.getMethod("run", int.class);  
  14.             method.invoke(clazz.newInstance(), -1);  
  15.         } catch (ClassNotFoundException e) {  
  16.             e.printStackTrace();  
  17.         } catch (SecurityException e) {  
  18.             e.printStackTrace();  
  19.         } catch (NoSuchMethodException e) {  
  20.             e.printStackTrace();  
  21.         } catch (IllegalArgumentException e) {  
  22.             e.printStackTrace();  
  23.         } catch (IllegalAccessException e) {  
  24.             e.printStackTrace();  
  25.         } catch (InvocationTargetException e) {  
  26.             System.out.println("此处接收被调用方法内部未被捕获的异常");  
  27.             Throwable t = e.getTargetException();// 获取目标异常  
  28.             t.printStackTrace();  
  29.         } catch (InstantiationException e) {  
  30.             e.printStackTrace();  
  31.         }  
  32.     }  
  33. }  
输出:
[plain]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. 此处接收被调用方法内部未被捕获的异常  
  2. com.zzj.test.reflect.ZeroException: 参数不能小于零!  
  3.     at com.zzj.test.reflect.B.run(Reflect.java:13)  
  4.     at com.zzj.test.reflect.Reflect.run(Reflect.java:6)  
  5.     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
  6.     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)  
  7.     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)  
  8.     at java.lang.reflect.Method.invoke(Unknown Source)  
  9.     at com.zzj.test.reflect.Test.main(Test.java:11)  
关注
打赏
1482932726
查看更多评论
立即登录/注册

微信扫码登录

0.0525s