java.lang.reflect.InvocationTargetException

本文探讨了Java中使用反射调用方法时如何处理被调用方法内部未被捕获的异常。通过具体代码示例,展示了当被调用方法内部抛出异常时,如何在反射调用中捕获并处理这些异常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当被调用的方法的内部抛出了异常而没有被捕获时,将由此异常接收

  1. public class Reflect {  
  2.     public void run(int i) throws ZeroException {  
  3.         B b = new B();  
  4.         b.run(i);  
  5.     }  
  6. }  
  7.   
  8. class B {  
  9.     public void run(int i) throws ZeroException {  
  10.         if (i < 0) {  
  11.             throw new ZeroException("参数不能小于零!");  
  12.         }  
  13.         System.out.println("参数:" + i);  
  14.   
  15.     }  
  16. }  
  1. public class Test {  
  2.     public static void main(String[] args) {  
  3.         try {  
  4.             Class<?> clazz = Class.forName("com.zzj.test.reflect.Reflect");  
  5.             Method method = clazz.getMethod("run", int.class);  
  6.             method.invoke(clazz.newInstance(), -1);  
  7.         } catch (ClassNotFoundException e) {  
  8.             e.printStackTrace();  
  9.         } catch (IllegalAccessException e) {  
  10.             e.printStackTrace();  
  11.         } catch (InvocationTargetException e) {  
  12.             System.out.println("此处接收被调用方法内部未被捕获的异常");  
  13.             e.printStackTrace();  
  14.         } catch (InstantiationException e) {  
  15.             e.printStackTrace();  
  16.         }  
  17.     }  
  18. }  

结果:

  1. 此处接收被调用方法内部未被捕获的异常  
  2. java.lang.reflect.InvocationTargetException  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值