系统错误码定义规则

一、定义错误异常类

/**
 * @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<String,String> error = new HashMap<String, String>();


	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 <T>
     * @param <R>
     * @return
     */
    public static  <T,R> T covertRequestToResponse(R requestDTO,Class<T> clazz)  {
        try {
            T response =clazz.newInstance();
            BeanUtils.copyProperties(requestDTO,response);

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值