98 lines
3.1 KiB
Java
98 lines
3.1 KiB
Java
|
|
package com.nis.util;
|
|||
|
|
|
|||
|
|
import java.util.HashMap;
|
|||
|
|
import java.util.Map;
|
|||
|
|
|
|||
|
|
import com.nis.restful.RestBusinessCode;
|
|||
|
|
import com.nis.restful.RestServiceException;
|
|||
|
|
import com.nis.web.service.SaveRequestLogThread;
|
|||
|
|
|
|||
|
|
public class OracleErrorCodeUtil {
|
|||
|
|
/**
|
|||
|
|
* 返回异常信息内容
|
|||
|
|
*
|
|||
|
|
* @param e
|
|||
|
|
* @return
|
|||
|
|
*/
|
|||
|
|
public static String getOraCode(Exception e) {
|
|||
|
|
if (e == null) {
|
|||
|
|
return "";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
String errorMessage = e.getMessage();
|
|||
|
|
if (null != errorMessage && errorMessage.length() > 0) {
|
|||
|
|
int index = errorMessage.toUpperCase().indexOf("ORA-");
|
|||
|
|
if (index != -1) {
|
|||
|
|
return errorMessage.substring(index + 4, index + 9);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
return "";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 根据错误码抛出对应的异常,case内容为空的时候会按照下个case的异常内容来抛出异常,修改时请注意
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
public static void throwExceptionInfo(SaveRequestLogThread thread, long time, String errorCode) {
|
|||
|
|
|
|||
|
|
switch (errorCode) {
|
|||
|
|
|
|||
|
|
case "00001":
|
|||
|
|
throw new RestServiceException(thread, time, "数据库对应的id已经存在!",
|
|||
|
|
RestBusinessCode.insert_data_repeat.getValue());
|
|||
|
|
case "00942":
|
|||
|
|
case "00903":
|
|||
|
|
throw new RestServiceException(thread, time, "数据库中未找到对应的表!",
|
|||
|
|
RestBusinessCode.param_formate_error.getValue());
|
|||
|
|
case "01401":
|
|||
|
|
case "12899":
|
|||
|
|
throw new RestServiceException(thread, time, "数据长度大于规定长度!",
|
|||
|
|
RestBusinessCode.param_formate_error.getValue());
|
|||
|
|
case "01400":
|
|||
|
|
case "01407":
|
|||
|
|
throw new RestServiceException(thread, time, "必须数据不能为空或数据不完整!",
|
|||
|
|
RestBusinessCode.param_formate_error.getValue());
|
|||
|
|
case "01722":
|
|||
|
|
throw new RestServiceException(thread, time, "无效的数字!", RestBusinessCode.param_formate_error.getValue());
|
|||
|
|
case "01465":
|
|||
|
|
throw new RestServiceException(thread, time, "无效的十六进制数字!", RestBusinessCode.param_formate_error.getValue());
|
|||
|
|
default:
|
|||
|
|
throw new RestServiceException(thread, time, "数据操作发生异常!", RestBusinessCode.unknow_error.getValue());
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public static Map<Integer, String> throwExceptionInfo(String errorCode) {
|
|||
|
|
Map<Integer, String> map = new HashMap<Integer, String>();
|
|||
|
|
switch (errorCode) {
|
|||
|
|
case "00001":
|
|||
|
|
map.put(RestBusinessCode.insert_data_repeat.getValue(), "数据库对应的id已经存在!");
|
|||
|
|
return map;
|
|||
|
|
case "00942":
|
|||
|
|
case "00903":
|
|||
|
|
map.put(RestBusinessCode.param_formate_error.getValue(), "数据库中未找到对应的表!");
|
|||
|
|
return map;
|
|||
|
|
case "01401":
|
|||
|
|
case "12899":
|
|||
|
|
map.put(RestBusinessCode.param_formate_error.getValue(), "数据长度大于规定长度!");
|
|||
|
|
return map;
|
|||
|
|
case "01400":
|
|||
|
|
case "01407":
|
|||
|
|
map.put(RestBusinessCode.param_formate_error.getValue(), "必须数据不能为空或数据不完整!");
|
|||
|
|
return map;
|
|||
|
|
case "01722":
|
|||
|
|
map.put(RestBusinessCode.param_formate_error.getValue(), "无效的数字!");
|
|||
|
|
return map;
|
|||
|
|
case "01465":
|
|||
|
|
map.put(RestBusinessCode.param_formate_error.getValue(), "无效的十六进制数字!");
|
|||
|
|
return map;
|
|||
|
|
default:
|
|||
|
|
map.put(RestBusinessCode.unknow_error.getValue(), "数据操作发生异常!");
|
|||
|
|
return map;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|