我需要检查是否由某些数据库问题引起异常.我收到一个异常,并检查其原因是否包含"ORA"字符串并返回(类似"ORA-00001").这里的问题是我收到的异常嵌套在其他异常中,所以如果我不知道它是否是一个oracle异常,我必须检查该异常的原因,依此类推.有更清洁的方法吗?有没有办法知道给定异常的第一个原因(深层嵌套异常)?
我当前的代码如下所示:
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;
}
}
Run Code Online (Sandbox Code Playgroud)