Java - найти первую причину исключения

Мне нужно проверить, вызвано ли исключение какой-либо проблемой базы данных. Я получаю исключение и проверяю, содержит ли его причина строку «ORA», и возвращаю ее (что-то вроде «ORA-00001»). Проблема в том, что полученное мной исключение вложено в другие исключения, поэтому, если я не выясню, является ли это исключением оракула, я должен выяснить причину этого исключения и так далее. Есть ли более чистый способ сделать это? Есть ли способ узнать первую причину (глубокое исключение) данного исключения?

Мой текущий код выглядит так:

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;
        }
    }

Ответы на вопрос(9)

Ваш ответ на вопрос