ExceptionConfig.java 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package com.llisoft.service.sms.config;
  2. import org.slf4j.Logger;
  3. import org.slf4j.LoggerFactory;
  4. import org.springframework.http.converter.HttpMessageNotReadableException;
  5. import org.springframework.web.bind.MethodArgumentNotValidException;
  6. import org.springframework.web.bind.annotation.ControllerAdvice;
  7. import org.springframework.web.bind.annotation.ExceptionHandler;
  8. import org.springframework.web.bind.annotation.ResponseBody;
  9. import com.llisoft.common.constant.CodeEnum;
  10. import com.llisoft.common.exception.MtaException;
  11. import com.llisoft.common.vo.ResponseVo;
  12. /**
  13. * 统一处理业务异常 controller
  14. * @author YangJie [2018年12月26日]
  15. */
  16. @ControllerAdvice
  17. public class ExceptionConfig {
  18. private Logger logger = LoggerFactory.getLogger(ExceptionConfig.class);
  19. /**
  20. * 入参空
  21. * @param exception
  22. * @return
  23. */
  24. @ExceptionHandler(HttpMessageNotReadableException.class)
  25. public @ResponseBody ResponseVo<String> exception(HttpMessageNotReadableException exception){
  26. logger.warn("入参异常", exception);
  27. return ResponseVo.build(CodeEnum.C400);
  28. }
  29. /**
  30. * 入参检验失败
  31. * @param exception
  32. * @return
  33. */
  34. @ExceptionHandler(MethodArgumentNotValidException.class)
  35. public @ResponseBody ResponseVo<String> exception(MethodArgumentNotValidException exception){
  36. logger.warn("入参异常", exception);
  37. return ResponseVo.build(CodeEnum.C400.getCode(), exception.getBindingResult().getFieldError().getDefaultMessage());
  38. }
  39. /**
  40. * 业务异常
  41. * @param exception
  42. * @return
  43. */
  44. @ExceptionHandler(MtaException.class)
  45. public @ResponseBody ResponseVo<String> exception(MtaException exception){
  46. logger.warn("业务异常", exception);
  47. return ResponseVo.build(CodeEnum.FAIL.getCode(), exception.getMessage());
  48. }
  49. /**
  50. * 默认异常
  51. * @param exception
  52. * @return
  53. */
  54. @ExceptionHandler(Exception.class)
  55. public @ResponseBody ResponseVo<String> exception(Exception exception){
  56. logger.error("服务异常", exception);
  57. return ResponseVo.build(CodeEnum.C500);
  58. }
  59. }