2011-12-09 109 views
0

我想編寫一個返回值的類方法,如果類方法有異常,那麼它將被返回。我很困惑如何決定這種情況下的班級結構。我在想的是該方法返回一個Object,如果該方法成功執行,則返回一個值,否則返回一個Exception消息。設計方法的正確方法?

class ABC 
{ 
    public Object xxx(int a,int b) 
    { 
     Object returnValue=null; 
     try{retunValue=a/b;} 
     catch(Excetion e){returnValue=e;}    

    return returnValue; 
    } 

} 

它是正確的方法,我還想着setXXXgetXXX方法,但是這不會幫助我的這種情況。請幫助我,遵循什麼是正確的方法。

謝謝

+2

你爲什麼要返回異常?而是將例外拋到上層例程。 – Muse

+0

處理異常或傳遞給下一個級別。不要把兩者結合起來 – vrbilgi

+0

@vrbilgi:我想發送異常消息給root不是異常object.exception在異常引發的同一類上捕獲它。 –

回答

3

你可以在發生異常時在catch塊中拋出異常。並捕獲您從那裏調用該方法的例外

class ABC { 

    public static Object xxx(int a, int b) throws Exception{ 
     Object returnValue = null; 
     returnValue = a/b; 
     return returnValue; 
    } 

    public static void main(String a[]){ 
     try { 
      xxx(1, 2); 
     } catch(Exception exc) { 
      exc.printStackTrace(); 
     } 
    } 
} 
0

您會得到上述代碼的算術例外。你不應該拋出一個算術異常,而是通過檢查拋出IllegalArgumentException: -

public int xxx(int a,int b) 

{

 if(b==0) 
     throw new IllegalArgumentException("Argument divisor is 0"); 
    else 
     return a/b; 

}

有關詳細信息,請參閱本SO Post