自定义枚举类、异常类

描述分三部分:

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());
			
		}

	}
    	    

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值