目录
返回异常消息看Java项目中定义统一返回结果_半截的诗--的博客-CSDN博客
一、制造异常
屏蔽 IntegralGrade 中的 @TableField注解
@ApiModelProperty(value = "逻辑删除(1:已删除,0:未删除)")
//@TableField("is_deleted")
@TableLogic
private Boolean deleted;
Swagger中测试
测试列表查询功能,查看结果,发生错误,显示响应失败
二、统一异常处理
目标:我们想让异常结果也显示为统一的返回结果对象,并且统一处理系统的异常信息,那么需要进行统一异常处理。
1、创建统一异常处理器
guigu-common中创建exception包,创建统一异常处理器类UnifiedExceptionHandler
package com.atguigu.common.exception;
/**
* 统一异常处理,当出现异常时都会被统一异常处理器捕获
*/
@Slf4j
@Component //Spring容易自动管理
@RestControllerAdvice //在controller层添加通知。如果使用@ControllerAdvice,则方法上需要添加@ResponseBody,将当前类标识为异常处理的组件
public class UnifiedExceptionHandler {
/**
* 未定义异常,只要是Controller类里面出现了该类型的异常,就可以被这个方法拦截到。
*/
@ExceptionHandler(value = Exception.class) //当controller中抛出Exception,则捕获
public R handleException(Exception e) {
log.error(e.getMessage(), e);
return R.error();
}
}
2、测试
返回统一错误结果
三、处理特定异常
如果我们不想显示统一的“服务器内部错误”,需要个性化的显示