按错误代码范围显示SQL异常

时间:2013-07-02 15:49:48

标签: java oracle error-handling

我正在尝试迭代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)?

谢谢。

0 个答案:

没有答案