前言

书写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);@Beanpublic Initer initer() {return new Initer();}/*** 初始化** @param initer* @return*/@Beanpublic String init(Initer initer) {initer.registerInit(new Callable() {@Overridepublic Object call() throws Exception {new ErrorCode().init();return null;}});return null;}
}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家的支持。
希望能给大家带来些许灵感。

XH:去发光,而不是被照亮,做些值得未来感谢的事吧。

java 自定义异常错误编码相关推荐

  1. 【错误记录】生成 Java 文档错误 ( Xxx.java:xx: 错误: 编码GBK的不可映射字符 )

    文章目录 一.报错信息 二.解决方案 一.报错信息 使用 javadoc 命令 , 生成 Java 文档 , 报错 ; javadoc Student.java D:\develop\javadoc& ...

  2. java命令行编译运行遇到java:5: 错误: 编码GBK的不可映射字符 (涓変釜鏋勯?犲嚱鏁?)解决方法

    java命令行编译运行遇到java:5: 错误: 编码GBK的不可映射字符 (涓変釜鏋勯?犲嚱鏁?)解决方法 错误原因:使用简单javac 命令编译java文件,如果代码中存在中文,就算是注释有中文的 ...

  3. 【java】xxxxx.java:5: 错误: 编码 GBK 的不可映射字符_编译问题

    1.出现问题 xxxxx.java:5: 错误: 编码 GBK 的不可映射字符 (0x80) System.out.println("璇疯緭鍏ョ涓?涓拰灏氱殑韬珮锛?"); ...

  4. JAVA:错误: 编码GBK的不可映射字符;错误: 找不到或无法加载主类;

    目录 一.编码GBK的不可映射字符: 1.现象 2.解决方法 ANSI:ANSI是什么编码? - malecrab - 博客园 (cnblogs.com) 二.找不到或无法加载主类 一.编码GBK的不 ...

  5. java:3: 错误: 编码 GBK 的不可映射字符 (0x8E)

    1.错误实例 2.java代码 public class Welcome {public static void main(String[] args) {System.out.println(&qu ...

  6. java错误: 编码 GBK 的不可映射字符 (0x9C)

    java错误: 编码 GBK 的不可映射字符 (0x9C) 目录 java错误: 编码 GBK 的不可映射字符 (0x9C) 错误情况示例: 解决办法: 错误情况示例: E:\myJavaCode&g ...

  7. IDEA Generate JavaDoc时 控制台报错误: 编码GBK的不可映射字符

    一.生成JavaDoc 为了方便查看功能解释,除了使用Swagger-ui以外,还需要知道非控制器(controller)类的功能,比如Service.Resource等.于是尝试了一下IDEA的生成 ...

  8. 基于Windows下处理Java错误:编码GBK的不可映射字符的解决方案

    基于Windows下处理Java错误:编码GBK的不可映射字符的解决方案 最近在研究Java,涉及命令行编译,使用notepad++编辑器,然后使用javac编译: 之前的几个文件没有中文的内容,都没 ...

  9. java编译报错提示编码gbk的不可映射字符啥意思_解决java编译错误:编码GBK的不可映射字符...

    [我的Android进阶之旅]解决Android Studio 运行gradle命令时报错: 错误: 编码GBK的不可映射字符 1.问题描述 最近在负责公司基础业务和移动基础设施的开发工作,正在负责L ...

最新文章

  1. Javascript获取select下拉框选中的的值以及索引
  2. 细说Django的admin
  3. asp.net + winform + log4net 使用示例|using log4net with asp.net/winform
  4. KubeDL 0.4.0 - Kubernetes AI 模型版本管理与追踪
  5. webservice jsonp格式调用
  6. Pycrypto与RSA密码技术
  7. Flask 和 Google App Engine 部署模型服务
  8. GT-suite v2016的下载和安装
  9. 学习笔记(02):程序员的数学:微积分-常用导数(二):最常用到的技巧
  10. 生活中有哪些坏习惯一旦改正就能带来立竿见影的好处?
  11. ARCGIS绘制南海图框
  12. AndroidStudio画一条横线
  13. Swift 版本很好的卡片切换效果基于ZLSwipeableView(类似于[陌陌点点][探探])
  14. 【文件IO】Linux 文件操作(一) —— 遍历指定目录下的所有文件
  15. MATLAB regress命令
  16. 图片懒加载(仿SDWebImage)
  17. Unicode中的UTF-8, UTF-16, UTF-16LE, UTF-16BE编码及转换 | Java基础
  18. c语言编译器能不能找出逻辑错误,《C Primer Plus》- 第二章 C语言概述
  19. redhat linux 9.0 u盘安装,Red hat linux 9.0挂载U盘
  20. java swing 大球吃小球游戏 功能完善 完整代码 下载即可以运行

热门文章

  1. 实变函数笔记——不可数集合
  2. Learning Python Part II 之 赋值语句(Assignments)
  3. Java获取请求头、参数、路径、
  4. android无线点餐系统(电子菜谱)
  5. 长江云通冲量在线合作实践入选2021年“星河”隐私计算标杆案例
  6. XTU C语言程序设计1236Fibonacci
  7. 配置内网用户通过NAT地址池方式访问Internet外网
  8. 机器学习(十一)——集成学习
  9. I/O error on POST request for “http://localhost:9999/api/v2/spans“: connect timed out; nested except
  10. 钛资本研究院:未来三到五年,中国企业服务赛道将呈现黄金时代的基础