统一异常处理器

  1. // ...
  2. import org.springframework.web.bind.annotation.ControllerAdvice;
  3. import org.springframework.web.bind.annotation.ExceptionHandler;
  4. import org.springframework.web.bind.annotation.ResponseBody;
  5. @ControllerAdvice
  6. public class GlobalExceptionHandler {
  7. /**-------- 通用异常处理方法 --------**/
  8. @ExceptionHandler(Exception.class)
  9. @ResponseBody
  10. public R error(Exception e) {
  11. e.printStackTrace();
  12. return R.fail(e); // 通用异常结果
  13. }
  14. /**-------- 指定异常处理方法 --------**/
  15. @ExceptionHandler(NullPointerException.class)
  16. @ResponseBody
  17. public R error(NullPointerException e) {
  18. e.printStackTrace();
  19. return R.fail(ResultCodeEnum.NULL_POINT);
  20. }
  21. @ExceptionHandler(HttpClientErrorException.class)
  22. @ResponseBody
  23. public R error(IndexOutOfBoundsException e) {
  24. e.printStackTrace();
  25. return R.fail(ResultCodeEnum.HTTP_CLIENT_ERROR);
  26. }
  27. /**-------- 自定义定异常处理方法 --------**/
  28. @ExceptionHandler(CMSException.class)
  29. @ResponseBody
  30. public R error(CMSException e) {
  31. e.printStackTrace();
  32. return R.fail(e.getMessage());
  33. }
  34. /**-------- 自定义定异常处理方法 --------**/
  35. @ExceptionHandler(BizException.class)
  36. @ResponseBody
  37. public BaseResponse<Void> handler(BizException e) {
  38. System.out.println("进入业务异常"+e.getRetCode()+e.getRetMessage());
  39. return R.fail(CodeEnum.ERROR.getMessage());
  40. }
  41. }