2010-12-02 10 views
1

私は例外をキャッチしたいと思っていますが、他の人には許可します。クラスで例外をキャッチしますか?

私が現時点でになってきた解決策は以下のとおりです。私は他の人が好きで投げると同じように、これは静かに予想される例外を食べますが

protected void perfromCall(Class expectedException) throws Exception { 
    try { 
     response = call.call(request); 
    } catch (Exception e) { 
     if (!expectedException.isInstance(e)) { 
      throw new Exception(e); 
     } 
    } 
} 

、私が何を好きではない、それはそれということですについて予期せぬ例外をラップして、予期しない例外をキャッチする前に、以前は呼び出し元で予期せぬものをキャッチする必要がありました。テストに失敗するためにテストフレームワークにバブルアップさせることができます。

「クラスAの例外が予想されていましたが、それ以外の例外については、上記のテストフレームワークで処理されるまではチェーンの上にスローさせてください」というクリーンな方法がありますか?

編集:私は例外を静かに食べることに疑問を持った回答(今削除された)があったので、なぜこれをやりたいのかについて、何らかの正当性を提示したかったのです。これは、サービスを呼び出すテストフレームワークのためのものです。テストの中には、サービスに悪い引数を渡すものがあるため、無効なリクエストをキャッチするためにサービスによってスローされる例外が予想されます。したがって、予期せぬ例外を静かに食べたいと思いますが、予期しない例外が起きてテストに失敗することがあります。

答えて

7
protected void perfromCall(Class<?> expectedException) throws Exception { 
    try { 
     response = call.call(request); 
    } catch (Exception e) { 
     if (!expectedException.isInstance(e)) { 
      throw e; 
     } 
    } 
} 
+0

私が実験していたときにコンパイラが私のスローステートメントについて不平を言っていたが、私はそれを試みた(少なくとも私はやったと思ったが)どこか別のものがあったに違いない。できるだけ早くこれを受け入れる。 –

関連する問題