我现在项目很多地方要用到反射,我想问下大家 
我通过反射调用一个对象的方法,而这个方法里面有异常要处理
我用反射调用用就抓不到啦,只能够抓到  InvocationTargetException异常而被我反射调用的方法里的异常信息很重要,涉及到金融交易一些报错的信息,我必须要抓到,可是我现在用啦反射 无论怎样也没法子抓到啦大家帮我想想 办法啊,跪求大家解决,要不然,做出来这个项目可要失业啦!!!给100分悬赏!!!!!

解决方案 »

  1.   

    import java.lang.reflect.InvocationTargetException;
    import java.lang.reflect.Method;public class Test6 {
        
        public static void main(String[] args) throws Throwable {
            Test6a a = new Test6a();
            Class<Test6a> clazz = Test6a.class;
            try {
                Method method = clazz.getMethod("test", new Class[0]);
                method.invoke(a);
            } catch (SecurityException e) {
                e.printStackTrace();
            } catch (NoSuchMethodException e) {
                e.printStackTrace();
            } catch (IllegalArgumentException e) {
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            } catch (InvocationTargetException e) {
                throw e.getTargetException();
            }
        }
    }class Test6a {
        public void test() throws BankingException {
            System.out.println("test");
            throw new BankingException("failed"); 
        }
    }class BankingException extends Exception {
        
        public BankingException(String message) {
            super(message);
        }
    }
      

  2.   

    InvocationTargetException 异常类中有个 getTargetException() 方法,可以获得所反射目标对象产生的异常。
      

  3.   

    getTargetException() 可以搞定!
      

  4.   

    就是火龙果说的那种办法.
    有时候使用JDK的动态代理的时候经常要捕获这种异常
      

  5.   

    引用 9 楼 bao110908 的回复:
    InvocationTargetException 异常类中有个 getTargetException() 方法,可以获得所反射目标对象产生的异常。
    正解呀
      

  6.   

    其实一直没给分的原因是想跟大家多聊聊啊,java 上手一个月,感觉比delphi好用多了,好用是好用,可是感觉用java 离系统程序员的梦想太远啦,
    给了我启发的同志我都会点给分哦!