Java简化Oracle 存储过程,触发器抛出的异常信息

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

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;
}
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值