在项目根包目录下新建 exception.base 包
新建BaseException 继承 RuntimeException

package com.ddz.errordemo.handler;/*** 基础异常类* @author Lenovo* @date 2022/4/26*/
public class BaseException extends RuntimeException {/*** 所属模块*/private String module;/*** 错误码*/private String code;/*** 错误码对应的参数*/private Object[] args;/*** 错误消息*/private String defaultMessage;public BaseException(String module, String code, Object[] args, String defaultMessage) {this.module = module;this.code = code;this.args = args;this.defaultMessage = defaultMessage;}public BaseException(String module, String code, Object[] args) {this(module, code, args, null);}public BaseException(String module, String defaultMessage) {this(module, null, null, defaultMessage);}public BaseException(String code, Object[] args) {this(null, code, args, null);}public BaseException(String defaultMessage) {this(null, null, null, defaultMessage);}public String getModule() {return module;}public void setModule(String module) {this.module = module;}public String getCode() {return code;}public void setCode(String code) {this.code = code;}public Object[] getArgs() {return args;}public void setArgs(Object[] args) {this.args = args;}public String getDefaultMessage() {return defaultMessage;}public void setDefaultMessage(String defaultMessage) {this.defaultMessage = defaultMessage;}
}

根据自己的需要新建业务异常类

package com.ddz.errordemo.exception;import com.ddz.errordemo.exception.base.BaseException;/*** 用户信息异常类*/
public class UserException extends BaseException
{private static final long serialVersionUID = 1L;public UserException(String code, Object[] args){super("user", code, args, null);}
}

在项目根包目录下新建 exception.handler包;
新建RestExceptionHandler 异常处理类

package com.ddz.errordemo.exception.handler;import com.ddz.errordemo.exception.base.BaseException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;import javax.servlet.http.HttpServletRequest;/*** @author Lenovo* @date 2022/4/26*/
@RestControllerAdvice
public class RestExceptionHandler {@ExceptionHandler(Exception.class)public Object exception(HttpServletRequest request, Exception e) {return request.getRequestURL() + "全局异常" + e.getMessage();}@ExceptionHandler(NullPointerException.class)public Object nullException(Exception e) {return "空指针" + e.getMessage();}@ExceptionHandler(RuntimeException.class)public Object busException(BaseException e) {return "模块" + e.getModule() + "异常码:" + e.getCode() + "异常信息:" + e.getMessage();}
}

Springboot 自定义全局异常处理相关推荐

  1. 看看人家 SpringBoot 的全局异常处理,多么优雅...

    点击关注公众号,Java干货及时送达 本篇文章主要介绍的是SpringBoot项目进行全局异常的处理. SpringBoot全局异常准备 说明:如果想直接获取工程那么可以直接跳到底部,通过链接下载工程 ...

  2. 看看人家 SpringBoot 的全局异常处理多么优雅...

    1 SpringBoot全局异常准备 说明:如果想直接获取工程那么可以直接跳到底部,通过链接下载工程代码. 开发准备 环境要求JDK:1.8SpringBoot:1.5.17.RELEASE 首先还是 ...

  3. 看看别人家 SpringBoot 的全局异常处理,多么优雅....

    今日推荐编程大佬是否能记住代码,不用百度就能啪啪啪敲出来么?在 IDEA 中的各种调试技巧,轻松定位 Bug(超级全面) 后端接口如何提高性能? 16 个写代码的好习惯 为什么不推荐使用BeanUti ...

  4. SpringBoot的全局异常处理的优雅吃法!要进来学习下吗

    SpringBoot的全局异常处理的优雅吃法!要进来学习下吗 SpringBoot全局异常准备 开发准备 环境要求 JDK :1.8 SpringBoot :1.5.17.RELEASE 首先还是Ma ...

  5. SpringBoot集成全局异常处理

    2019独角兽企业重金招聘Python工程师标准>>> SpringBoot集成全局异常处理 前言 对于通常的MVC项目,大量的异常需要我们去处理,如此一来,我们的 Controll ...

  6. php中的全局异常,tp5 API 自定义全局异常处理(中)

    我们先来梳理一下异常的分类: 异常分类 tp5 有一个全局异常处理类,如果我们想自己实现上面的分类,需要覆盖和重写默认的全局异常处理类. 我们现在在 api 模块的同级下新建一个 lib 文件夹,再新 ...

  7. SpringBoot 自定义全局异常处理器

    SpringBoot自定义全局异常处理器 一.maven依赖 二.GlobalExceptionHandler.java 三.ResponseStandard.java 四.logback.xml 五 ...

  8. springboot定义全局异常处理类GlobalExceptionHandler

    全局异常处理:GlobalExceptionHandler 定义全局异常处理类 以下为扩展部分 返回参数封装 引用示例 定义全局异常处理类 注意:如果需要返回页面,则要删掉@ResponseBody注 ...

  9. springboot基于全局异常处理的简单日志打印

    log.error() Logger类下有多个不同的error方法,根据传入参数的个数及类型的不同,自动选择不同的重载方法. 当error(Object obj)只传入一个参数时会将异常对象作为Obj ...

最新文章

  1. 多彩浏览器win10版 隐私声明
  2. mllib java怎么调用_如何准备mllib中的训练数据
  3. FastDFS测试图片上传
  4. 《树莓派实战秘籍》——2.7 技巧27尝试Occidentalis:为(高级)教育目的的树莓派发行版...
  5. 锂电池放空后充不进电_锂电池过度放电后充不进电怎么办
  6. 洛谷-省选斗兽场-动态规划1
  7. springmvc(18)使用WebSocket 和 STOMP 实现消息功能
  8. 简述汇编语言中的标号有什么规定_2020年秋季学期《汇编语言》在线考试 (适用于2020年12月份考试)【答案标准】...
  9. yum安装软件出错解决方法
  10. RuoYi框架使用手册
  11. nagios无法安装check_mysql插件的问题
  12. Spring Cloud之服务治理(注册发现)
  13. mybatis mysql upsert_SpringBoot2.3.4+Mybatis+Phoenix操作HBase2.0.6
  14. 介绍几款免费APP在线制作社开发生成工具
  15. vue json对象转数组_如何使用Vue.js渲染JSON中定义的动态组件
  16. 兄弟连猿代码less css 视频教程学习平台
  17. 襄阳寻古2-襄阳城墙,铁佛寺
  18. MySQL主从复制和读写分离
  19. img标签 src路径正确 但图片不显示
  20. VUE使用document.onkeydown键盘的监听与移除

热门文章

  1. 1638_chdir函数的功能
  2. 如何真正从零开始学习Python
  3. 单位根检验、协整检验和格兰杰因果检验三者之间的关系
  4. IOS开发 阅读器类APP可用开源框架介绍(2)
  5. K8s安全管理:认证、授权、准入控制
  6. 关于4G转wifi路由器模块与4G转有线模块的原理
  7. 计算机专业笔记本用i5还是i7,笔记本电脑i5和i7的区别大么?
  8. 计算机与plc通信参数,PLC与PC计算机通信
  9. 浅析linux下的回收站以及U盘中的.Trash文件夹
  10. HTTP/HTTPS协议