前言
书写java代码的时候会用到统一的异常错误编码,这里为大家介绍一下我的自定义异常错误编码。
一、throw
throw
关键字通常用在方法体中,表示抛出一个异常的动作,并且抛出一个异常对象。当方法在执行过程中遇到异常情况时,将异常信息封装为异常对象,然后throw,它后面的语句就不执行了。
具体使用就是写在方法里,当执行到throw就会抛出异常。
/**
* 当前登录人Entity
*
* @return 用户实体类
*/
public final static UserEntity getCurrentUser() {
UserEntity user = (UserEntity) RequestContextUtils.get().getUserObject();
if (user == null) {
throw new CodeException(ErrorCode.CODE_501);//用户未登陆,请重新登录
}
return user;
}
二、代码
1.错误编码类
可分类自定义错误编码,这样可以统一管理。例如:用户、角色、部门等等。
import java.util.HashMap;
import java.util.Map;
/**
* 错误编码
*/
public class ErrorCode {
//代码缓存map信息
private static Map<String, CodeMessage> codeMessageMap = new HashMap<String, CodeMessage>();
//定义一个代码信息类
public static class CodeMessage {
private final String code;
private final String message;
public CodeMessage(String code, String message) {
this.code = code;
this.message = message;
}
public String getMessage() {
return message;
}
public String getCode() {
return code;
}
}
//添加代码
public static void addCode(String code, String message) {
codeMessageMap.put(code, new CodeMessage(code, message));//存进代码缓存ma
}
public static CodeMessage getCodeMessage(String code) {
return codeMessageMap.get(code);
}
//基础
public static final String CODE_501 = "501";
//用户
public static final String CODE_PHONE_NUMBER_IS_NOT_EXIST = "601";//未找到该手机号码对应的用户!
public void init() {
//基础
this.addCode(ErrorCode.CODE_501, "用户未登陆,请重新登录");
//用户
this.addCode(ErrorCode.CODE_PHONE_NUMBER_IS_NOT_EXIST, "未找到该手机号码对应的用户");
}
}
2.初始化类
启动项目时,同步初始化下就可以了。
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.concurrent.Callable;
/**
* 初始化
**/
@Configuration
public class InitConfiguration {
private static final Logger logger = LoggerFactory.getLogger(InitConfiguration.class);
@Bean
public Initer initer() {
return new Initer();
}
/**
* 初始化
*
* @param initer
* @return
*/
@Bean
public String init(Initer initer) {
initer.registerInit(new Callable() {
@Override
public Object call() throws Exception {
new ErrorCode().init();
return null;
}
});
return null;
}
}
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家的支持。
希望能给大家带来些许灵感。
XH:去发光,而不是被照亮,做些值得未来感谢的事吧。