Java - 查找异常的第一个原因
2022-09-01 04:04:24
我需要检查异常是否由某些数据库问题引起。我收到一个异常,并检查其原因是否包含“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;
}
}