博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
@ControllerAdvice + @ExceptionHandler 全局处理 Controller 层异常
阅读量:6525 次
发布时间:2019-06-24

本文共 2095 字,大约阅读时间需要 6 分钟。

1.自定义异常处理类

**  * 自定义异常处理类  * 针对不同的异常自定义不同的方法  * 环绕通知  * 切面:针对所有的controller中抛出的异常  * 若使用@ControllerAdvice,则不会自动转换为JSON格式  */ @RestControllerAdvice public class RestExceptionHandler {
/**  * 业务异常处理  * @param e  * @return ErrorInfo  */ @ExceptionHandler({BaseBusinessException.class}) public ErrorInfo BusinessExceptionHandler(BaseBusinessException e) {
return new ResponseResultUtil().error(e.getCode(), e.getMessage()); }
} 2.定义一个用于返回页面结果信息的VO对象类:ErrorInfo
public class ErrorInfo {
private Integer code; private String message; public ErrorInfo(){}; public ErrorInfo(Integer code, String message) {
super(); this.code = code; this.message = message; } public Integer getCode() {
return code; } public void setCode(Integer code) {
this.code = code; } public String getMessage() {
return message; } public void setMessage(String message) {
this.message = message; } }
 
3.封装一个基础业务异常类(让所有自定义业务异常类 继承此 基础类):BaseBusinessException
/**  * 类名称: BaseBusinessException 
* 类描述: 业务异常父类
* 创建人:GMM
* date 2019/3/11
*/ public class BaseBusinessException extends RuntimeException {
private Integer code; // 给子类用的方法 public BaseBusinessException(HttpStatus httpStatus) {
this(httpStatus.value(),httpStatus.getReasonPhrase()); } public BaseBusinessException(Integer code,String message) {
super(message); this.code = code; } public Integer getCode() {
return code; } public void setCode(Integer code) {
this.code = code; } } 4.service 层抛出
@Service public class UserLoginServiceImpl implements UserLoginService {
@Autowired private UserLoginRepsitory userLoginRepsitory; @Transactional @Override public boolean login(String userCode, String password) {
Employee employee=userLoginRepsitory.getEmployeeByCode(userCode); if(StringUtils.isBlank(userCode)){
throw new BaseBusinessException(101,"用户名不能为空"); } }

转载于:https://www.cnblogs.com/gemiaomiao/p/10509640.html

你可能感兴趣的文章
记一次思维转变的时刻
查看>>
远程桌面无法复制粘贴
查看>>
bzoj2754
查看>>
redis liunx下安装和配置
查看>>
Asp.Net MVC 学习心得 之 View
查看>>
STL - Map - 运行期自定义排序
查看>>
Oil Deposits
查看>>
poj3984 迷宫问题(简单搜索+记录路径)
查看>>
Linux 服务器buff/cache清理
查看>>
算法试题 及其他知识点
查看>>
php课程---Json格式规范需要注意的小细节
查看>>
hadoop hdfs notes
查看>>
Java反射机制详解(3) -java的反射和代理实现IOC模式 模拟spring
查看>>
(2编写网络)自己动手,编写神经网络程序,解决Mnist问题,并网络化部署
查看>>
【转】如何使用分区助手完美迁移系统到SSD固态硬盘?
查看>>
NIO框架入门(四):Android与MINA2、Netty4的跨平台UDP双向通信实战
查看>>
ios兼容iphonex刘海屏解决方案
查看>>
就是要你懂TCP -- 握手和挥手
查看>>
Andrew Ng机器学习公开课笔记 -- Regularization and Model Selection
查看>>
《Python游戏编程快速上手》一1.3 如何使用本书
查看>>