系统错误码定义规则

一、定义错误异常类

/**
 * @author yunpeng.zhao
 * @version $Id TestException.java, v 0.1 2018-08-01 下午1:51 yunpeng.zhao Exp $$
 */
public class TestException extends RuntimeException{
    private static final long serialVersionUID = -5145296679669649729L;

    /**
     * 异常信息,包含必要的上下文业务信息,用于打印日志
     */
    protected String message;

    /**
     * 具体异常码,即异常码code的后3位,由各具体异常实例化时自己定义
     */
    protected String defineCode;

    public TestException(String defineCode) {
        super();
        this.defineCode = defineCode;
    }

    @Override
    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public String getDefineCode() {
        return defineCode;
    }

    public void setDefineCode(String defineCode) {
        this.defineCode = defineCode;
    }
}

二、定义错误码常量管理类

/***
 * 错误码和错误信息定义类
 * 1. 错误码定义规则为5为数字
 * 2. 前两位表示业务场景,最后三位表示错误码。例如:100001。10:通用 001:系统未知异常
 * 3. 维护错误码后需要维护错误描述
 * 错误码列表:
 *  10: 通用
 *      001:参数格式校验
 *  11:开户
 *  12: 交易
 *  13: 查询
 *  14: 银行
 *
 * @author yunpeng.zhao
 *
 */
public class TestErrorInfoConstants {
	/**
	 * 错误码与错误描述
	 */
	protected static Map error = new HashMap();


	public static String getErrorInfo(String defindCode) {
		return error.get(defindCode);
	}

	/**
	 * 构造方法私有化
	 */
	private TestErrorInfoConstants(){}

	/**
	 * 成功
	 */
	public static final String SUCCESS="00000";

	/***********************************************以10开头COMMON START****************************************************************/
	/**
	 *系统未知异常
	 */
	public static final String FAIL="10001";
	/**
	 * 参数异常
	 * **/
	public static final String PARAM_VALIDATE_EXCEPTION = "10002";
	/**
	 * 请求参数转换响应参数异常
	 * **/
	public static final String REQUEST_TO_RESPONSE_EXCEPTION = "10003";
	/***************************************************************************************************************/



	static{
		error.put(SUCCESS, "成功");
		error.put(FAIL, "系统未知异常");
		error.put(PARAM_VALIDATE_EXCEPTION, "请求参数有误");
		error.put(REQUEST_TO_RESPONSE_EXCEPTION, "请求参数转换响应参数异常");
	}

}

三、在业务地处理过程中,抛出异常

/**
     * 请求转换到响应
     * @param requestDTO
     * @param clazz
     * @param 
     * @param 
     * @return
     */
    public static   T covertRequestToResponse(R requestDTO,Class clazz)  {
        try {
            T response =clazz.newInstance();
            BeanUtils.copyProperties(requestDTO,response);

            return response;
        } catch (Exception e) {
            logger.info("请求参数转换到响应参数出现异常:{}",e);
            throw TestException.REQUEST_TO_RESPONSE_EXCEPTION;
        }
    }

 

你可能感兴趣的:(java)