SpringBoot异常处理统一封装我来做-使用篇
Posted 项目经理
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot异常处理统一封装我来做-使用篇相关的知识,希望对你有一定的参考价值。
摘自:https://www.cnblogs.com/Purgeyao/p/11781408.html
简介
重复功能我来写。在 SpringBoot
项目里都有全局异常处理以及返回包装等,返回前端是带上succ
、code
、msg
、data
等字段。单个项目情况下很好解决,当微服务模块多的情况下,很多情况开发都是复制原有代码进行构建另外一个项目的,导致这些功能升级需要修改多个服务,在这个基础上,我们封装了一个组件 unified-dispose-springboot-starter
里面包含了一些基础的异常处理以及返回包装功能。
1|2依赖添加启动功能
添加依赖
ps: 实际version版本请使用最新版
最新版本:
启动类添加 @EnableGlobalDispose
注解开启以下功能。
1|3One 异常处理⚠️
在项目中经常出现系统异常的情况,比如NullPointerException
等等。如果默认未处理的情况下,springboot
会响应默认的错误提示,这样对用户体验不是友好,系统层面的错误,用户不能感知到,即使为500
的错误,可以给用户提示一个类似服务器开小差
的友好提示等。
模块里以及包含了一些基本的异常处理方式(及不需要做任何代码编写已经具有基本异常处理),以及一些常见的异常code,用户只需要关心业务异常处理即可,直接通过 throw new 异常
的方式抛出即可。
异常处理包含类型
程序主动抛出异常
通常不建议直接抛出通用的BusinessException异常,应当在对应的模块里添加对应的领域的异常处理类以及对应的枚举错误类型。
如会员模块:
创建UserException
异常类、UserErrorCode
枚举、以及UserExceptionHandler
统一拦截类。
UserException:
UserErrorCode:
UserExceptionHandler:
最后业务使用如下:
上述方式,抛出异常后会被模块处理。前台返回如下: