执行Java代码我捕获了InvocationTargetException。使用printStackTrace方法,我得到以下内容:
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at Tester.main(Tester.java:180)
Caused by: java.lang.NullPointerException
at [...] (it doesn't really matters)
我的代码会检查其他人编写的几个程序,因此printStackTrace显示的原因是多种多样的。但是,如果我尝试使用方法getCause来获取内部原因,结果总是令人作呕的null!
Java 6 API说,事先从1.4版开始,getCause返回构造期间提供的原因异常...我应该假设Method.invoke没有正确构造异常,还是我丢失了什么?
提前致谢