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