我正在尝试遍历 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)
有什么方法可以在不使用字符串逻辑的情况下将错误(ORA-20000 和 ORA-06512)从getMessage()字符串中分离出来?
谢谢你。