This commit is contained in:
海言
2025-09-09 16:45:31 +08:00
parent 1cab4d1a8e
commit 9b74e815fc
5 changed files with 4 additions and 609 deletions

View File

@@ -1,101 +0,0 @@
package cn.xf.basedemo.common.exception;
import cn.xf.basedemo.common.enums.SystemStatus;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.HttpStatusCode;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import org.springframework.web.context.request.WebRequest;
import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.Map;
/**
* @Author: xiongfeng
* @CreateTime: 2023-11-08 11:48
* @Description: TODO 全局异常捕获类
* @Version: 1.0
*/
@Slf4j
@RestControllerAdvice
@Component
public class GlobalExceptionHandler extends ResponseEntityExceptionHandler{
/**
* 定义要捕获的异常 可以多个 @ExceptionHandler({}) *
* @param request request
* @param e exception
* @param response response
* @return 响应结果
*/
@ExceptionHandler(BusinessException.class)
public GenericResponse customExceptionHandler(HttpServletRequest request, final Exception e, HttpServletResponse response) {
BusinessException exception = (BusinessException) e;
if (exception.getCode() == ResponseCode.USER_INPUT_ERROR) {
response.setStatus(HttpStatus.BAD_REQUEST.value());
} else if (exception.getCode() == ResponseCode.FORBIDDEN) {
response.setStatus(HttpStatus.FORBIDDEN.value());
} else {
response.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value());
}
return new GenericResponse(exception.getCode(), null, exception.getMessage());
}
/**
* 登录异常捕获
* @param request
* @param e
* @param response
* @return
*/
@ExceptionHandler(LoginException.class)
public GenericResponse tokenExceptionHandler(HttpServletRequest request, final Exception e, HttpServletResponse response) {
log.error("token exception", e);
LoginException exception = (LoginException) e;
response.setStatus(HttpStatus.FORBIDDEN.value());
return new GenericResponse(exception.getCode(),null,exception.getMessage());
}
/**
* 重写handleMethodArgumentNotValid 方法自定义处理参数校验错误信息
*
* @param ex
* @param headers
* @param status
* @param request
* @return
*/
@Override
protected ResponseEntity<Object> handleMethodArgumentNotValid(MethodArgumentNotValidException ex, HttpHeaders headers, HttpStatusCode status, WebRequest request) {
Map<String, String> errors = new HashMap<>();
ex.getBindingResult().getFieldErrors().forEach(error -> {
errors.put(error.getField(), error.getDefaultMessage());
});
return new ResponseEntity<>(errors, HttpStatus.BAD_REQUEST);
}
/**
* 其他异常捕获
* @param request
* @param e
* @param response
* @return
*/
@ExceptionHandler(Exception.class)
public ResponseEntity exceptionHandler(jakarta.servlet.http.HttpServletRequest request, final Exception e, jakarta.servlet.http.HttpServletResponse response) {
Map<String, String> errors = new HashMap<>();
errors.put("message", e.getMessage());
return ResponseEntity.status(SystemStatus.ERROR.getCode()).body(errors);
}
}

View File

@@ -31,18 +31,18 @@ public class GlobalExceptionResolver implements HandlerExceptionResolver {
response.setStatus(HttpStatus.FORBIDDEN.value());
LoginException le = (LoginException) ex;
writer.write(new ObjectMapper().writeValueAsString(
new GenericResponse(le.getCode(), null, le.getMessage())
new GenericResponse<>(le.getCode(), null, le.getMessage())
));
} else if (ex instanceof BusinessException) {
BusinessException be = (BusinessException) ex;
response.setStatus(HttpStatus.BAD_REQUEST.value());
writer.write(new ObjectMapper().writeValueAsString(
new GenericResponse(be.getCode(), null, be.getMessage())
new GenericResponse<>(be.getCode(), null, be.getMessage())
));
} else {
response.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value());
writer.write(new ObjectMapper().writeValueAsString(
new GenericResponse(500, null, "系统异常")
new GenericResponse<>(500, null, "系统异常")
));
}
} catch (IOException ioEx) {

View File

@@ -111,7 +111,7 @@ public class UserServiceImpl implements UserService {
@Override
public RetObj getEsId(Long userId) {
Object user = EsUtil.getDocumentById(new EsBaseModel("user", String.valueOf(userId), null, User.class));
if(Objects.nonNull(user)){
if (Objects.nonNull(user)) {
return RetObj.success(user);
}
return RetObj.error("es中不存在该用户");