SpringBoot中@RestControllerAdvice注解的使用
作者:景庆197
这篇文章主要介绍了SpringBoot中@RestControllerAdvice注解的使用,@RestControllerAdvice主要用精简客户端返回异常,它可以捕获各种异常,需要的朋友可以参考下
1.主要作用
@RestControllerAdvice主要用精简客户端返回异常,它可以捕获各种异常
2.判断异常的类型
- 后端数据校验异常
- 未授权异常
- 自定义异常
- 普通异常
3.实现
未优化前

import com.qing.emos.wx.exception.EmosException;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.authz.UnauthorizedException;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.*;
@Slf4j
//@RestControllerAdvice可以捕获SpringMVC异常
@RestControllerAdvice
public class ExceptionAdvice {
@ResponseBody
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
// ExceptionHandler用于全局捕获异常
@ExceptionHandler(Exception.class)
public String validExcepionHandler(Exception e){
log.error("执行异常",e);
// 后端验证失败的异常,参数没传,或者传的不对
if(e instanceof MethodArgumentNotValidException){
MethodArgumentNotValidException exception = (MethodArgumentNotValidException) e;
return exception.getBindingResult().getFieldError().getDefaultMessage();
}
// 精简异常的内容,EmosException为自己定义异常
else if(e instanceof EmosException){
EmosException exception = (EmosException) e;
return exception.getMsg();
}
// 未授权异常
else if(e instanceof UnauthorizedException){
return "你不具备相关权限";
}
// 普通异常
else {
return "后端执行异常";
}
}
}优化后

到此这篇关于SpringBoot中@RestControllerAdvice注解的使用的文章就介绍到这了,更多相关SpringBoot的@RestControllerAdvice内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
- SpringBoot中@RestControllerAdvice注解实现全局异常处理类
- springboot的统一异常处理,使用@RestControllerAdvice详解
- SpringBoot项目中@RestControllerAdvice全局异常失效问题的解决
- SpringBoot中@RestControllerAdvice @ExceptionHandler异常统一处理类失效原因分析
- SpringBoot的@RestControllerAdvice作用详解
- SpringBoot常用注解@RestControllerAdvice详解
- SpringBoot中的@RestControllerAdvice注解详解
- SpringBoot @RestControllerAdvice注解对返回值统一封装的处理方法
- SpringBoot中@RestControllerAdvice 全局异常处理的实现
