自定义枚举类、异常类

描述分三部分:

1. 自定义枚举类
2. 自定义异常类
3. 测试类

  • 定义枚举类
package org.lhj.pro.exception;

import org.springframework.util.StringUtils;

/**
 * 创建枚举类
 * @author Administrator
 *
 */
public enum MyDefinedEnum {
	ERROR_ONE("001","参数丢失"),
	ERROR_TOW("002","参数验证失败"),
	ERROR_THREE("003","查询结果为空");
	
	private String code;
	private String msg;
	/**
	 * @return the code
	 */
	public String getCode() {
		return code;
	}
	/**
	 * @return the msg
	 */
	public String getMsg() {
		return msg;
	}

	
	
	private MyDefinedEnum(String code, String msg) {
		this.code = code;
		this.msg = msg;
	}
	public static MyDefinedEnum getByCode(String code) {
		if (StringUtils.isEmpty(code)) {
			return null;
		}else {
			for (MyDefinedEnum iterable_element : MyDefinedEnum.values()) {
				if (iterable_element.getCode().equals(code)) {
					return iterable_element;
				}
				
			}
		}
		return null;
	}
	public static MyDefinedEnum getByMsg(String msg) {
		if (StringUtils.isEmpty(msg)) {
			return null;
		}else {
			for (MyDefinedEnum iterable_element : MyDefinedEnum.values()) {
				if (iterable_element.getMsg().equals(msg)) {
					return iterable_element;
				}
				
			}
		}
		return null;
	}
}
  • 定义异常类
package org.lhj.pro.exception;

public class MyDefinedException extends RuntimeException{

	private static final long serialVersionUID = 3992320339135969217L;
	/**
	 * 声明code
	 */
	private String errorCode;
	/**
	 * 声明msg
	 */
	private String errorMsg;
	
	/**
	 * setter getter 方法
	 */
	public String getErrorCode() {
		return errorCode;
	}
	public void setErrorCode(String errorCode) {
		this.errorCode = errorCode;
	}
	public String getErrorMsg() {
		return errorMsg;
	}
	public void setErrorMsg(String errorMsg) {
		this.errorMsg = errorMsg;
	}
	/**
	 * 有参构造
	 */
	public MyDefinedException(String errorCode, String errorMsg) {
		super(errorMsg);
		this.errorCode = errorCode;
		this.errorMsg = errorMsg;
	}
	/**
	 * 扩展构造方法
	 */
	public MyDefinedException(MyDefinedEnum error) {
		super(error.getMsg());
		this.errorCode = errorCode;
		this.errorMsg = errorMsg;
	}
	public MyDefinedException(MyDefinedEnum error,String description) {
		super(error.getMsg()+description);
		this.errorCode = errorCode;
		this.errorMsg = errorMsg;
	}
	
	
}
  • 测试类
package org.lhj.pro;

import java.util.Random; 

import org.junit.Test;
import org.lhj.pro.exception.MyDefinedEnum;
import org.lhj.pro.exception.MyDefinedException;
// 1. 创建枚举类
// 2. 创建异常父类继承Exception或RuntimeException
// 3. 创建异常子类继承异常父类
public class TestException {
	@Test
	public void testError() {
		int key = 0;
		for (int i = 0; i < 10; i++) {
			 key = new Random().nextInt(2)+1;
			
		}
		System.out.println(key);
		switch (key) {
		case 1://参数丢失
			System.err.println(MyDefinedEnum.ERROR_ONE.getMsg());
			throw new MyDefinedException(MyDefinedEnum.ERROR_ONE);
		case 2://参数验证失败
			System.err.println(MyDefinedEnum.ERROR_TOW.getMsg());
			throw new MyDefinedException(MyDefinedEnum.ERROR_TOW);
		case 3://查询结果为空
			System.err.println(MyDefinedEnum.ERROR_THREE.getMsg());
			throw new MyDefinedException(MyDefinedEnum.ERROR_THREE,"自定义描述");
		default:
			System.err.println("未获取到相应的随机数");
		}

	}
	
	@Test
	public void testValues() {
		MyDefinedEnum[] values = MyDefinedEnum.values();
		for (MyDefinedEnum myDefinedEnum : values) {
			System.out.println(myDefinedEnum + "--" + myDefinedEnum.getCode() + "--" + myDefinedEnum.getMsg());
			MyDefinedEnum byCode = myDefinedEnum.getByCode("001");
			System.out.println(byCode);
			System.out.println(myDefinedEnum.getByMsg("查询结果为空"));
			System.out.println(byCode.getMsg());
			
		}

	}
    	    

}
发布了68 篇原创文章 · 获赞 5 · 访问量 9815

猜你喜欢

转载自blog.csdn.net/weixin_44407691/article/details/103106795