枚举实现Java⾃定义状态码(优雅的设计⾃定义异常⼆)
背景
Java提供了⼀些通⽤异常,但是通常不能满⾜我们的需求,因此⾃定义异常在软件开发中成为不可或缺的⼀部分,此处提供了⼀个简单的通过枚举实现的⾃定义状态码。
代码详解
设计⼀个接⼝,接⼝定义了状态码,消息信息以及获取⽅式
public interface MExceptionEnum{
/**
* 获取状态码
* @return 状态码
* /
public String getCode();
/**
* 获取提⽰信息
* @return 提⽰信息
* /
public String getMessage();
}
设计枚举类,实现上述接⼝,定义了具体的异常信息和状态码,当有新的状态码时,只需要添加⼀条对应的信息即可
public enum ExceptionEnum implements MExceptionEnum{
//⾃定义的状态码
DATABASE_EXCEPTION("2000","数据库连接异常"),
MONITOR_EXCEPTION("2001","⽂件监控异常")
;
//错误码
enum函数public String code;
//提⽰信息
public String message;
//构造函数
ExceptionEnum(String code,String message){
}
//获取状态码
public String getCode(){
return code;
}
//获取提⽰信息
public String getMessage(){
return message;
}
}
创建⼀个异常类,可在整个类中通⽤,根据不同得场景,抛出不同的异常信息
//此处异常类得名字建议⽤项⽬名加上Exception,整个项⽬的通⽤异常
public class MiException extends RuntimeException{
private ExceptionEnum exceptionEnum;
public MiException(ExceptionEnum exceptionEnum){
}
public ExceptionEnum getExceptionEnum(){
return exceptionEnum;
}
//⽤来输出异常信息和状态码
public void printException(MiException e){
ExceptionEnum exceptionEnum = e.getExceptionEnum();
System.out.println("异常代码:"+ Code()+",异常信息:"+ Message()); }
}
⾄此⾃定义异常就结束了,现在写⼀个测试类感受⼀下
public class MiTest{
public static void main(String []args){
try{
throw new MiException(ExceptionEnum.DATABASE_EXCEPTION);
}catch(MiException e){
e.printException(e);
}
}
}
执⾏主函数,得到的运⾏结果是
异常代码:2000,异常信息:数据库连接异常
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论