java獲取異常資訊(需要用e.getCause()的情況)
阿新 • • 發佈:2018-12-16
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()