JavaWeb项目中获取对Oracle操做时抛出的异常错误码

最近在项目中碰到了这么一个需求,一个JavaWeb项目,数据库用的是Oracle。业务上有一个对一张表的操做功能,当时设置了两个字段联合的惟一约束。因为前断没有对重复字段的校验,须要在插入时若是碰到惟一约束重复的时候在报文中抛出异常信息的描述,这是就须要获取详细的Oracle错误并添加错误描述信息。众所周知,oracle的错误码返回都是以ORA-xxxxx开头的,因此获取方式以下所示:数据库

  1. 从抛出的异常中拿除去ORA-打头的错误码
//获取Oracle的错误码. // @return 错误码 如00001是主键冲突 public static String getOraCode(Exception e) { if (e == null) { return ""; } String tmp = e.getMessage(); int index = tmp.toUpperCase().indexOf("ORA-"); if (index != -1) { return tmp.substring(index + 4, index + 9); } return ""; }
  1. 对错误码进行判断
public void addAccFlow(Map<String,Object> map) throws Exception { try { generalAccountingParanService.add(map); } catch (Exception e) { String flag = getOraCode(e); //主键冲突 if (flag.equals("00001")) { throw new BusinessException(MsgConstant_26001); } throw ex; } }
相关文章
相关标签/搜索