データベースの問題が原因で例外が発生したかどうかを確認する必要があります。例外を受け取り、その原因に「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;
}
}