通过全局异常处理机制实现接口参数校验返回指定返回类型

全局异常处理代码

@RestController
@ControllerAdvice
@Slf4j
public class ExceptionHandlerController {


@ExceptionHandler(ValidException.class)
public RspResult ytExceptionHandler(ValidException e) {
return RspResult.failed(e.getCode(), e.getMessage());
}

@ExceptionHandler(RuntimeException.class)
public RspResult runtimeExceptionHandler(RuntimeException e) {
e.printStackTrace();
log.info("RuntimeException{}", e);
log.error("RuntimeException{}", e);
return RspResult.failed(e.getMessage());
}

@ExceptionHandler(MethodArgumentNotValidException.class)
public RspResult methodArgumentNotValidException(MethodArgumentNotValidException e) {
e.printStackTrace();
log.info("MethodArgumentNotValidException{}", e);
log.error("MethodArgumentNotValidException{}", e);
String[] msg = {"操作失败"};
e.getBindingResult().getFieldErrors().forEach(error -> {
msg[0] = msg[0].concat(",").concat(error.getDefaultMessage());
});
return RspResult.failed(msg[0]);
}
}

接口参数实体类指定字段@NotNull controller方法参数加上注解@Valid校验 即可实现参数校验 加上 自动返回校验message
posted @ 2020-05-06 10:23  那光芒很刺眼  阅读(443)  评论(0编辑  收藏  举报