1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- package com.winhc.repal.exception;
- import com.winhc.common.base.BeanResponse;
- import com.winhc.common.enums.CodeMsg;
- import com.winhc.common.exception.CommonException;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.validation.BindException;
- import org.springframework.web.bind.MethodArgumentNotValidException;
- import org.springframework.web.bind.annotation.ExceptionHandler;
- import org.springframework.web.bind.annotation.RestControllerAdvice;
- /**
- * @description: 全局异常捕获
- * @author: yujie
- * @date 2019/4/24 10:07
- */
- @Slf4j
- @RestControllerAdvice
- public class ExceptionHandle {
- /**
- * 异常捕获
- * @param exception 异常
- * @return
- */
- @ExceptionHandler(value = Exception.class)
- public BeanResponse<Void> exceptionHandle(Exception exception) {
- log.error("系统异常", exception);
- return BeanResponse.error(CodeMsg.FAILED);
- }
- /**
- * 通用异常捕获
- * @param commonException 通用异常
- * @return
- */
- @ExceptionHandler(value = CommonException.class)
- public BeanResponse<Void> commonExceptionHandle(CommonException commonException) {
- //log.info(commonException.getMessage(), commonException);
- return BeanResponse.error(CodeMsg.FAILED.getCode(), commonException.getMessage());
- }
- /**
- * 参数校验异常绑定
- * @param bindException 绑定异常
- * @return
- */
- @ExceptionHandler(value = BindException.class)
- public BeanResponse<Void> bindExceptionHandle(BindException bindException) {
- StringBuilder msgBuilder = new StringBuilder();
- bindException.getBindingResult().getFieldErrors().forEach(error -> msgBuilder.append(error.getDefaultMessage()));
- //bindException.getFieldErrors().forEach(error -> msgBuilder.append(error.getField()).append(":")
- // .append(error.getDefaultMessage()).append("/"));
- //msgBuilder.deleteCharAt(msgBuilder.lastIndexOf("/"));
- String errorMsg = msgBuilder.toString();
- log.error("参数异常:" + errorMsg);
- return BeanResponse.error(CodeMsg.VALIDATE_PARAMETER.getCode(), errorMsg);
- }
- /**
- * 参数校验异常绑定
- * @param ex 绑定异常
- * @return
- */
- @ExceptionHandler(value = MethodArgumentNotValidException.class)
- public BeanResponse<Void> argumentNotValid(MethodArgumentNotValidException ex) {
- StringBuilder msgBuilder = new StringBuilder();
- //ex.getBindingResult().getFieldErrors().forEach(error -> msgBuilder.append(error.getField()).append(":")
- //.append(error.getDefaultMessage()).append("/"));
- ex.getBindingResult().getFieldErrors().forEach(error -> msgBuilder.append(error.getDefaultMessage()));
- //msgBuilder.deleteCharAt(msgBuilder.lastIndexOf("/"));
- String errorMsg = msgBuilder.toString();
- log.error("参数异常:" + errorMsg);
- return BeanResponse.error(CodeMsg.VALIDATE_PARAMETER.getCode(), errorMsg);
- }
- /**
- * 参数校验异常绑定
- * @param ex 绑定异常
- * @return
- */
- @ExceptionHandler(value = {IllegalArgumentException.class})
- public BeanResponse<Void> argumentException(RuntimeException ex) {
- log.error("IllegalArgumentException:" + ex.getMessage());
- return BeanResponse.error(CodeMsg.VALIDATE_PARAMETER.getCode(), ex.getMessage());
- }
- }
|