|
@@ -2,11 +2,13 @@ package com.anyway.exception;
|
|
|
|
|
|
import com.anyway.util.R;
|
|
import com.anyway.util.R;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
+import org.springframework.http.HttpStatus;
|
|
import org.springframework.validation.ObjectError;
|
|
import org.springframework.validation.ObjectError;
|
|
import org.springframework.web.bind.MethodArgumentNotValidException;
|
|
import org.springframework.web.bind.MethodArgumentNotValidException;
|
|
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;
|
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|
|
|
+import org.springframework.web.bind.annotation.ResponseStatus;
|
|
|
|
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@@ -21,14 +23,36 @@ import java.util.stream.Collectors;
|
|
public class GlobalExceptionHandler {
|
|
public class GlobalExceptionHandler {
|
|
@ExceptionHandler(MethodArgumentNotValidException.class)
|
|
@ExceptionHandler(MethodArgumentNotValidException.class)
|
|
@ResponseBody
|
|
@ResponseBody
|
|
|
|
+ @ResponseStatus(HttpStatus.BAD_REQUEST)
|
|
public R<Void> handleValidException(MethodArgumentNotValidException e){
|
|
public R<Void> handleValidException(MethodArgumentNotValidException e){
|
|
log.error("参数校验失败:{}", e.getMessage(), e);
|
|
log.error("参数校验失败:{}", e.getMessage(), e);
|
|
String errorMessages = e.getBindingResult().getAllErrors().stream().map(ObjectError::getDefaultMessage).collect(Collectors.joining(";"));
|
|
String errorMessages = e.getBindingResult().getAllErrors().stream().map(ObjectError::getDefaultMessage).collect(Collectors.joining(";"));
|
|
return R.fail(errorMessages);
|
|
return R.fail(errorMessages);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 登录异常
|
|
|
|
+ *
|
|
|
|
+ * @param e
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ @ExceptionHandler(LoginException.class)
|
|
|
|
+ @ResponseBody
|
|
|
|
+ @ResponseStatus(HttpStatus.UNAUTHORIZED)
|
|
|
|
+ public R<Void> handleLoginException(LoginException e){
|
|
|
|
+ log.error("登录失败:{}", e.getMessage(), e);
|
|
|
|
+ return R.fail("请登录");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 处理不可预知的异常
|
|
|
|
+ *
|
|
|
|
+ * @param e
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
@ExceptionHandler(RuntimeException.class)
|
|
@ExceptionHandler(RuntimeException.class)
|
|
@ResponseBody
|
|
@ResponseBody
|
|
|
|
+ @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
|
|
public R<Void> handleRuntimeException(RuntimeException e){
|
|
public R<Void> handleRuntimeException(RuntimeException e){
|
|
log.error("系统异常:{}", e.getMessage(), e);
|
|
log.error("系统异常:{}", e.getMessage(), e);
|
|
return R.fail("系统异常:" + e.getMessage());
|
|
return R.fail("系统异常:" + e.getMessage());
|