1

我正在尝试遍历 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()字符串中分离出来?

谢谢你。

4

0 回答 0