2011-01-15 10 views
3

Ich habe diese kleine Hilfsmethode geschrieben, um die Ausnahmekette nach einer bestimmten Ausnahme (entweder gleich oder übergeordnete Klasse) zu durchsuchen. Dies scheint jedoch eine Lösung für ein allgemeines Problem zu sein, so dachte ich, dass es bereits irgendwo existieren muss, möglicherweise in einer Bibliothek, die ich bereits importiert habe. Also, irgendwelche Ideen, ob/wo dies existieren könnte?Allgemeines Hilfsprogramm für die Suche nach Ausnahmesituationen

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

Hey Andrew! 6 Fragen und keine akzeptiert? Wussten Sie, dass Sie die Antworten akzeptieren können, indem Sie auf das Häkchen vor der Antwort klicken? –

Antwort

2

Sehen Sie sich das Google Guava-Projekt an. Sie haben einige handliche Klassen, darunter eine für Ausnahmen. ZB Funktionalität, die Sie gerade angefordert haben könnte in der nächsten Art und Weise realisiert werden:

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

Quellcode für diese Klasse: Throwables

Viel Spaß!

0

Ich glaube nicht, dass es ein Dienstprogramm gibt, um dieses Problem zu lösen. Es macht mich neugierig, warum du das willst. Es könnte eine bessere Lösung für Ihr Root-Ziel geben.

0

fand ich, dass Apache commons-lang ExceptionUtils.indexOfType tut dies:

public static int indexOfType (java.lang.Throwable throwable, java.lang.Class Typ)

Verwandte Themen