一、总体说明
一共有3个类:一个自定义异常类,继承了RuntimeException,里面有异常码和异常信息两个字段。一个异常码类,存放静态常量。一个异常信息类,存放静态常量
1、DiyException类
public class DiyException extends RuntimeException {
private static final long serialVersionUID=-783442404816393286L;
//默认错误异常码为-1
public static final String ERROR_CODE_DEFAULT="-1";
private String msg;
private String code;
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
/**
* 带参构造器
* @param msg 异常信息
*/
public DiyException(String msg){
super(msg);
this.code=ERROR_CODE_DEFAULT;
this.msg=msg;
}
/**
* 带参构造器
* @param code 异常码
* @param msg 异常信息
*/
public DiyException(String code,String msg){
super(msg);
this.code=code;
this.msg=msg;
}
}
2、ExceptionCode
public class ExceptionCode {
/**
* 入参缺失参数
*/
public static String PARAM_MISS="param.miss";
/**
* 参数非法
*/
public static String PARAM_INVALID="param.invalid";
/**
* 数据没改变
*/
public static String DATA_UNCHANGED="data.unchanged";
/**
* 数据访问受限
*/
public static String DATA_PERMISSION_DENIED="data.permission.denied";
}
3、ExceptionMsg
public class ExceptionMsg {
/**
* 参数缺失-参数名
*/
public final static String MSG_INFO_PARAM_MISS="参数缺失-%s";
/**
* 参数无效-参数名
*/
public final static String MSG_INFO_PARAM_INVALID="参数无效-%s";
/**
* 查询的对象不在-对象名
*/
public final static String MSG_INFO_OBJ_MISS="对象不存在-%s";
/**
* 不支持的环境类型-环境名称
*/
public final static String MSG_INFO_NOT_SUPPORTED_ENV="不支持的环境类型-%s";
/**
* 不支持的请求方式-请求类型
*/
public final static String MSG_INFO_NOT_SUPPORTED_HTTP_METHOD="不支持的HTTP请求方式-%s";
}
4、使用
public class MapAndExceptionTest {
public static void main(String[] args) {
try{
//随便放开一个执行测试
//throwDiyExp();
//throwExp();
}catch(DiyException e1){
System.out.println(e1.getMsg());
}catch(Exception e2){
System.out.println(e2.getMessage());
}
}
public static void throwDiyExp(){
try{
int i=13/0;
}catch(Exception e){
throw new DiyException(ExceptionCode.DATA_PERMISSION_DENIED, String.format(ExceptionMsg.MSG_INFO_OBJ_MISS,"addOne"));
}
}
public static void throwExp(){
try{
int i=13/0;
}catch(Exception e){
throw e;
}
}
}