2011-01-15 26 views
3

私はこの小さなヘルパーメソッドを使用して、特定の例外(equalsまたはsuperクラスのいずれか)の例外チェーンを検索しました。しかし、これは共通の問題に対する解決策のように思えるので、既にどこかに存在していなければならないと思っていました。だから、どこに存在するかもしれないかについてのアイデアは?例外検索の一般的なユーティリティ

boolean exceptionSearch(Exception base, Class<?> search) { 

    Throwable e = base; 

    do { 
     if (search.isAssignableFrom(e.getClass())) { 
      return true; 
     } 
    } while ((e = e.getCause()) != null); 

    return false; 
} 
+0

ねえアンドリュー! 6つの質問は受け入れられていない?あなたは答えの前にダニをクリックして答えを受け入れることができることを知っていましたか? –

答えて

2

Google Guavaプロジェクトをご覧ください。彼らは非常に例外的なものを含むいくつかの便利なクラスを持っています。例えば、あなただけ要求してきた機能は、次の方法で実施することができる:このクラスの

boolean exceptionSearch(Exception base, Class<?> search) { 
     return Throwables.getCausalChain(base).contains(search); 
    } 

ソースコード:Throwables

をお楽しみください!

0

この問題の解決に役立つユーティリティはありません。なぜあなたがこれをしたいと思うのか不思議に思います。あなたの根本的な目的のためのより良い解決策があるかもしれません。

0

私は、Apacheコモンズ・ラングExceptionUtils.indexOfTypeがないことが判明し、この:

のpublic static int型indexOfType(たjava.lang.Throwableスロー可能、 のjava.lang.Classタイプ)

関連する問題