java如何采用反射机制来调用方法,
若要获取异常信息
Java代码
try{ Method m = ...; m.invoke(...);//反射调用方法 }catch(Exception e){ System.out.println(e.getMessage);//获取不到异常信息 }
这样是不行的。
应该这样:
Java代码
try{ Method m = ...; m.invoke(...);//反射调用方法 }catch(Exception e){ System.out.println(e.getCause().getMessage);//获取异常信息 }
java有一个异常链,一个异常可能是由于另一个异常引起的。
采用反射机制,我们捕捉到的异常是java.lang.reflect.InvocationTargetException,
这个异常的message为null
这个异常是我们的方法所抛出的异常引起的。
故要获取方法真正的异常,
应该用e.getCause()