我正在尝试迭代SQLException对象并为其每个索引过滤错误代码。
public static void showExceptionByErrorCodeRange(SQLException ex, int range_min, int range_max){
String msg = new String();
int error_code = 0;
Iterator<Throwable> itr = ex.iterator();
while(itr.hasNext()){
SQLException e = (SQLException)itr.next();
error_code = e.getErrorCode();
if(error_code >= range_min && error_code <= range_max){
msg += e.getMessage();
}
}
showErrorMsg(msg);
}
这段代码编译,但看起来SQLException只有一个索引,因为 while(itr.hasNext())只循环一次而 e.getMessage()返回:
ORA-20000: The vendor-specific error message i need to select by my function.\n
ORA-06512: at "any_table", line x\n #<-- default SQL error message.
ORA-06512: at line 1\n #<-- default SQL error message.
我能够将 e.getErrorCode()设置为20000,但是当我将 e.getMessage()添加到我的 msg 我在同一个字符串中得到所有错误。 (ORA-06512)
有没有办法在不使用字符串逻辑的情况下从 getMessage()字符串中分离错误(ORA-20000和ORA-06512)?
谢谢。