zoukankan      html  css  js  c++  java
  • JAVA 反射类 捕获异常 method.invoke方法如何捕获异常

    1. try{
    2.  
      Method.invoke(pam1,pam2);
    3.  
      }catch(Exception e) {
    4.  
      throw new Exception (e.getMessage());//此处输出为null
    5.  
      }

    普通的异常捕获是捕获不到invoke方法中的异常的。其实java认为用反射来调用方法时,jvm不能在编译期间确定方法的throws 类型,所以方法可能抛出的异常jvm也不能动态确定其类型,而统一抛出InvocationTargetException。

    我们采用下面方法捕获异常:

    1.  
      try{
    2.  
      Method.invoke(pam1,pam2);
    3.  
      }catch(Exception e) {
    4.  
      InvocationTargetException targetEx = (InvocationTargetException)ex;
    5.  
      Throwable trowEx = targetEx .getTargetException();
    6.  
      throw new Excetption ("异常:"+trowEx .getMessage());
    7.  
      }
  • 相关阅读:
    2021年4月1日
    2021年3月31日
    2021年3月30日
    2021年3月29日
    2021年3月27日
    2021年3月26日
    2021年3月25日
    人件集阅读笔记03
    2020年3月24日
    构建之法阅读笔记02
  • 原文地址:https://www.cnblogs.com/heihei1990/p/13911654.html
Copyright © 2011-2022 走看看