2011-12-09 3 views
0

値を返すクラスメソッドを記述したいのですが、クラスメソッドに例外がある場合はそれが返されます。私はこの状況のクラス構造を決める方法を混同しています。私が考えているのは、メソッドが正常に実行された場合はObjectを返すメソッドで、それ以外の場合は例外メッセージが返されます。正しい設計手法?

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例外が発生する同じクラスでcatchします。 –

答えて

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

上記のコードに対して算術演算例外が発生します。

public int xxx(int a,int b) 

{

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

}

詳細については、このSO Postを参照してください - :あなたは確認することで、IllegalArgumentExceptionを投げる代わりに、算術演算例外をスローしてはいけません。

関連する問題