欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java简化Oracle存储过程,触发器抛出的异常信息(介绍一个简化异常的方法)

程序员文章站 2022-05-03 20:29:36
近期开发公司的平台项目,由于前期的基础扎根比较深,很多功能操作都是在存储过程,触发器中进行控制。这些东西最恶心的地方就是返回的异常会出现超级大长串。需要在后台捕获异常进行判断,最终返回到前端。为了偷...

近期开发公司的平台项目,由于前期的基础扎根比较深,很多功能操作都是在存储过程,触发器中进行控制。这些东西最恶心的地方就是返回的异常会出现超级大长串。需要在后台捕获异常进行判断,最终返回到前端。为了偷个懒,写了个简化异常的方法,去掉了后台的判断。直接可返回到前台。也给大家分享一下。

public string resultexception(exception e){ //传进来的是oralce抛出的异常
    string error = e.getmessage() == null ? e.tostring() : e.getmessage(); //获取异常的主体信息。
    if(e instanceof java.sql.sqlexception || e.getcause() instanceof java.sql.sqlexception){
        string split = string.valueof((char)3);//定义一个特殊字符,避免于消息中的其他字符冲突
        error = error.replacefirst("java.sql.sqlexception: (ora[-][0-9]+:\\s*)+", split); //关键代码
        int p = error.indexof(split);
        if(p >= 0){
            error = error.substring(p+1).trim();
            int p2 = error.indexof("ora-");
            if(p2>=0){
                    error = error.substring(0, p2).trim();
            }
        }
    }
    error = (error.length() > 200 ? error.substring(0,200)+"..." : error);
    return error;
}