Commit b0ea1b7b by 田超

新增异常统一处理

parent d2b21c0d
...@@ -9,7 +9,10 @@ import org.slf4j.LoggerFactory; ...@@ -9,7 +9,10 @@ import org.slf4j.LoggerFactory;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.http.converter.HttpMessageNotReadableException; import org.springframework.http.converter.HttpMessageNotReadableException;
import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;
import org.springframework.web.HttpRequestMethodNotSupportedException; import org.springframework.web.HttpRequestMethodNotSupportedException;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.ServletRequestBindingException; import org.springframework.web.bind.ServletRequestBindingException;
import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ExceptionHandler;
...@@ -22,6 +25,8 @@ import com.pcloud.common.permission.PermissionException; ...@@ -22,6 +25,8 @@ import com.pcloud.common.permission.PermissionException;
import feign.FeignException; import feign.FeignException;
import org.springframework.web.method.annotation.MethodArgumentTypeMismatchException; import org.springframework.web.method.annotation.MethodArgumentTypeMismatchException;
import java.util.List;
/** /**
* *
* @描述:异常集中处理 * @描述:异常集中处理
...@@ -92,6 +97,23 @@ public class GlobalExceptionHandler { ...@@ -92,6 +97,23 @@ public class GlobalExceptionHandler {
LOGGER.warn("【响应未结束】" + exception.getMessage(), exception); LOGGER.warn("【响应未结束】" + exception.getMessage(), exception);
return new ResponseEntity<>("响应未结束!", HttpStatus.OK); return new ResponseEntity<>("响应未结束!", HttpStatus.OK);
} }
else if (exception instanceof MethodArgumentNotValidException) {
LOGGER.info("【参数异常】" + exception.getMessage(), exception);
MethodArgumentNotValidException methodArgumentNotValidException = (MethodArgumentNotValidException) exception;
ResponseDto<Object> responseDto = new ResponseDto<>();
BindingResult bindingResult = methodArgumentNotValidException.getBindingResult();
String resultMessage = "参数异常:";
List<FieldError> fieldErrors = bindingResult.getFieldErrors();
for (int i = 0;i<fieldErrors.size();i++) {
if(fieldErrors.size()==1 || i == fieldErrors.size()-1){
resultMessage += fieldErrors.get(i).getDefaultMessage();
}else {
resultMessage += fieldErrors.get(i).getDefaultMessage() + ", ";
}
}
responseDto.setMessage(resultMessage);
return new ResponseEntity<>(responseDto, HttpStatus.OK);
}
// 业务异常 // 业务异常
else if (exception instanceof BizException) { else if (exception instanceof BizException) {
LOGGER.info("【业务异常】" + exception.getMessage(), exception); LOGGER.info("【业务异常】" + exception.getMessage(), exception);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment