Java - Finde die erste Ursache einer Ausnahme

Ich muss überprüfen, ob eine Ausnahme durch ein Datenbankproblem verursacht wird. Ich erhalte eine Ausnahme und überprüfe, ob die Ursache die Zeichenfolge "ORA" enthält, und gebe diese zurück (etwa "ORA-00001"). Das Problem hierbei ist, dass die Ausnahme, die ich erhalte, in anderen Ausnahmen verschachtelt ist. Wenn ich also nicht herausfinde, ob es sich um eine Orakelausnahme handelt, muss ich die Ursache dieser Ausnahme ermitteln und so weiter. Gibt es einen saubereren Weg, dies zu tun? Gibt es eine Möglichkeit, die erste Ursache (die tief verschachtelte Ausnahme) einer bestimmten Ausnahme zu ermitteln?

Mein aktueller Code sieht so aus:

private String getErrorOracle(Throwable e){
        final String ORACLE = "ORA";
        if (e.getCause() != null && e.getCause().toString().contains(ORACLE)){
            return e.getCause().toString();
        } else if(e.getCause() != null){
            return getErrorOracle(e.getCause());
        } else {
            return null;
        }
    }

Antworten auf die Frage(9)

Ihre Antwort auf die Frage