ExceptionController.java 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package com.poyee.controller.base;
  2. import com.poyee.dto.ResultDTO;
  3. import com.poyee.exception.OrderException;
  4. import com.poyee.exception.ServiceException;
  5. import lombok.extern.slf4j.Slf4j;
  6. import org.springframework.web.bind.MethodArgumentNotValidException;
  7. import org.springframework.web.bind.annotation.ExceptionHandler;
  8. import org.springframework.web.bind.annotation.RestControllerAdvice;
  9. import java.sql.SQLException;
  10. import java.util.Locale;
  11. /**
  12. * @author po'yi
  13. */
  14. @RestControllerAdvice
  15. @Slf4j
  16. public class ExceptionController extends BaseController{
  17. @ExceptionHandler(ServiceException.class)
  18. public ResultDTO handleException(ServiceException e, Locale locale) {
  19. log.info("业务异常:{}", e.getMessage());
  20. return failureResult(e.getCode(),e.getMessage(),null);
  21. }
  22. @ExceptionHandler(OrderException.class)
  23. public ResultDTO handleException(OrderException e, Locale locale) {
  24. log.warn("订单异常:{}", e.getMessage());
  25. return failureResult(e.getCode(),e.getMessage(),null);
  26. }
  27. @ExceptionHandler(Exception.class)
  28. public ResultDTO handleException(Exception e, Locale locale) {
  29. log.error("系统异常:{}", e);
  30. return failureResult(500,"系统异常");
  31. }
  32. @ExceptionHandler(SQLException.class)
  33. public ResultDTO handleException(SQLException e, Locale locale) {
  34. log.error("sql异常:{}", e);
  35. return failureResult(500,"sql异常,请联系管理员!");
  36. }
  37. @ExceptionHandler(MethodArgumentNotValidException.class)
  38. public ResultDTO handleMethodArgumentNotValidException(MethodArgumentNotValidException e, Locale locale) {
  39. String defaultMessage = e.getBindingResult().getAllErrors().get(0).getDefaultMessage();
  40. return failureResult(500,"参数错误:"+defaultMessage);
  41. }
  42. }