GlobalExceptionHandler.java 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package seecoder.devcloud.web.infrastructure;
  2. import lombok.extern.slf4j.Slf4j;
  3. import org.apache.http.HttpStatus;
  4. import org.springframework.validation.BindException;
  5. import org.springframework.web.bind.annotation.ExceptionHandler;
  6. import org.springframework.web.bind.annotation.ResponseBody;
  7. import org.springframework.web.bind.annotation.RestControllerAdvice;
  8. import seecoder.devcloud.common.exceptions.ServiceException;
  9. import seecoder.devcloud.web.infrastructure.security.TokenExpiredException;
  10. import seecoder.devcloud.web.model.vo.Response;
  11. import javax.validation.ConstraintViolationException;
  12. /**
  13. * @author PuHong Weng
  14. * @date 2021/3/5
  15. * @description: 统一异常返回处理
  16. */
  17. @RestControllerAdvice
  18. @Slf4j
  19. public class GlobalExceptionHandler {
  20. //***************************validation参数异常的捕获**************
  21. @ExceptionHandler(value = BindException.class)
  22. @ResponseBody
  23. public Response handleResourceBindException(BindException e) {
  24. return Response.buildFailure(HttpStatus.SC_BAD_REQUEST, e.getMessage());
  25. }
  26. @ExceptionHandler(value = ConstraintViolationException.class)
  27. @ResponseBody
  28. public Response handleResourceConstraintViolationException(ConstraintViolationException e) {
  29. return Response.buildFailure(HttpStatus.SC_BAD_REQUEST, e.getMessage());
  30. }
  31. //***************************业务异常的捕获**************
  32. @ExceptionHandler(ServiceException.class)
  33. @ResponseBody
  34. public Response serviceExceptionHandler(ServiceException e){
  35. log.error("Error: ",e);
  36. return Response.buildFailure(e.getCode(),e.getMessage());
  37. }
  38. @ExceptionHandler(Exception.class)
  39. @ResponseBody
  40. public Response exceptionHandler(Exception e){
  41. log.error("Error: ",e);
  42. return Response.buildFailure(503,e.getMessage());
  43. }
  44. @ExceptionHandler(TokenExpiredException.class)
  45. @ResponseBody
  46. public Response tokenExpiredExceptionHandler(TokenExpiredException e){
  47. log.error("Error: ",e);
  48. return Response.buildFailure(e.getCode(), e.getMessage());
  49. }
  50. }