1. 程式人生 > >捕獲java反射執行方法丟擲的異常

捕獲java反射執行方法丟擲的異常

一般在業務開發時需要向上層拋異常寫法如下:

public void A() throws Exception{
  throw new Exception();
}
public void B(){
  try{
    A();
  }catch(Exception e){
    //具體處理異常
  }
}

但是如果是通過反射呼叫的A方法那麼如果直接catch異常類Exception
會返回null,所以應該用如下方法捕獲:

public String handleException() {
        String msg = null;
        try {
            Object
o = Class.forName("xxx.xxx").newInstance(); o.getClass().getMethod("").invoke(o); } catch (Exception e) { if (e instanceof InvocationTargetException) { Throwable targetEx =((InvocationTargetException)e).getTargetException(); if (targetEx != null
) { msg = targetEx.getMessage(); } } else { msg = e.getMessage(); } } return msg; }