zoukankan      html  css  js  c++  java
  • 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;
    }
    }
  • 相关阅读:
    mysql的多表查询join
    JMeter源码集成到Eclipse
    jmeter关联 正则表达式提取器
    JMeter结果树响应数据中文乱码解决办法
    BZOJ 2080: [Poi2010]Railway 双栈排序
    BZOJ 4384: [POI2015]Trzy wieże
    BZOJ 4325: NOIP2015 斗地主
    BZOJ 1142: [POI2009]Tab
    第10章 内核同步方法
    第1章 Linux内核简介
  • 原文地址:https://www.cnblogs.com/waliwaliwa/p/7441638.html
Copyright © 2011-2022 走看看