Springboot 自定义全局异常处理
在项目根包目录下新建 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 自定义全局异常处理相关推荐
- 看看人家 SpringBoot 的全局异常处理,多么优雅...
点击关注公众号,Java干货及时送达 本篇文章主要介绍的是SpringBoot项目进行全局异常的处理. SpringBoot全局异常准备 说明:如果想直接获取工程那么可以直接跳到底部,通过链接下载工程 ...
- 看看人家 SpringBoot 的全局异常处理多么优雅...
1 SpringBoot全局异常准备 说明:如果想直接获取工程那么可以直接跳到底部,通过链接下载工程代码. 开发准备 环境要求JDK:1.8SpringBoot:1.5.17.RELEASE 首先还是 ...
- 看看别人家 SpringBoot 的全局异常处理,多么优雅....
今日推荐编程大佬是否能记住代码,不用百度就能啪啪啪敲出来么?在 IDEA 中的各种调试技巧,轻松定位 Bug(超级全面) 后端接口如何提高性能? 16 个写代码的好习惯 为什么不推荐使用BeanUti ...
- SpringBoot的全局异常处理的优雅吃法!要进来学习下吗
SpringBoot的全局异常处理的优雅吃法!要进来学习下吗 SpringBoot全局异常准备 开发准备 环境要求 JDK :1.8 SpringBoot :1.5.17.RELEASE 首先还是Ma ...
- SpringBoot集成全局异常处理
2019独角兽企业重金招聘Python工程师标准>>> SpringBoot集成全局异常处理 前言 对于通常的MVC项目,大量的异常需要我们去处理,如此一来,我们的 Controll ...
- php中的全局异常,tp5 API 自定义全局异常处理(中)
我们先来梳理一下异常的分类: 异常分类 tp5 有一个全局异常处理类,如果我们想自己实现上面的分类,需要覆盖和重写默认的全局异常处理类. 我们现在在 api 模块的同级下新建一个 lib 文件夹,再新 ...
- SpringBoot 自定义全局异常处理器
SpringBoot自定义全局异常处理器 一.maven依赖 二.GlobalExceptionHandler.java 三.ResponseStandard.java 四.logback.xml 五 ...
- springboot定义全局异常处理类GlobalExceptionHandler
全局异常处理:GlobalExceptionHandler 定义全局异常处理类 以下为扩展部分 返回参数封装 引用示例 定义全局异常处理类 注意:如果需要返回页面,则要删掉@ResponseBody注 ...
- springboot基于全局异常处理的简单日志打印
log.error() Logger类下有多个不同的error方法,根据传入参数的个数及类型的不同,自动选择不同的重载方法. 当error(Object obj)只传入一个参数时会将异常对象作为Obj ...
最新文章
- 多彩浏览器win10版 隐私声明
- mllib java怎么调用_如何准备mllib中的训练数据
- FastDFS测试图片上传
- 《树莓派实战秘籍》——2.7 技巧27尝试Occidentalis:为(高级)教育目的的树莓派发行版...
- 锂电池放空后充不进电_锂电池过度放电后充不进电怎么办
- 洛谷-省选斗兽场-动态规划1
- springmvc(18)使用WebSocket 和 STOMP 实现消息功能
- 简述汇编语言中的标号有什么规定_2020年秋季学期《汇编语言》在线考试 (适用于2020年12月份考试)【答案标准】...
- yum安装软件出错解决方法
- RuoYi框架使用手册
- nagios无法安装check_mysql插件的问题
- Spring Cloud之服务治理(注册发现)
- mybatis mysql upsert_SpringBoot2.3.4+Mybatis+Phoenix操作HBase2.0.6
- 介绍几款免费APP在线制作社开发生成工具
- vue json对象转数组_如何使用Vue.js渲染JSON中定义的动态组件
- 兄弟连猿代码less css 视频教程学习平台
- 襄阳寻古2-襄阳城墙,铁佛寺
- MySQL主从复制和读写分离
- img标签 src路径正确 但图片不显示
- VUE使用document.onkeydown键盘的监听与移除