springboot全局异常处理(传入参数校验)
1.导入依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> </dependency>
2.创建全局异常处理类
@RestControllerAdvice public class ProjectExceptionAdvice { // 拦截所有异常错误,如果没有自定义 只要有报错就会被这里拦截 @ExceptionHandler public ApiRequest doException(Exception e){ e.printStackTrace();// 输入异常到控制台 return new ApiRequest(false,"服务器出现异常,请稍后再试"); } // 自定义拦截, 拦截传入参数非空判断 @ExceptionHandler(MethodArgumentNotValidException.class) public ApiRequest NotValidException(MethodArgumentNotValidException e){ e.printStackTrace(); String message = e.getBindingResult().getFieldError().getDefaultMessage(); return ApiRequest.faild(message); } }
3.使用
【传入参数Param类】
@Data public class LoginParam { @NotBlank(message = "账号不能为空") private String username; private String password; }
【Controller】
接收参数加入该注解:
@Validated
ok