ExceptionHandlerAdvice.java 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. package com.uas.eis.exception;
  2. import com.uas.eis.entity.ErrorMessage;
  3. import com.uas.eis.sdk.entity.ApiResult;
  4. import com.uas.eis.sdk.entity.WMSApiResult;
  5. import org.apache.log4j.Logger;
  6. import org.springframework.http.HttpStatus;
  7. import org.springframework.ui.ModelMap;
  8. import org.springframework.util.StringUtils;
  9. import org.springframework.web.bind.annotation.ControllerAdvice;
  10. import org.springframework.web.bind.annotation.ExceptionHandler;
  11. import org.springframework.web.bind.annotation.ResponseBody;
  12. import org.springframework.web.bind.annotation.ResponseStatus;
  13. import javax.servlet.http.HttpServletRequest;
  14. @ControllerAdvice
  15. public class ExceptionHandlerAdvice {
  16. private final static Logger logger = Logger.getLogger(ExceptionHandlerAdvice.class);
  17. /**
  18. * 处理未被发现处理的运行时抛出异常
  19. *
  20. * @param ex
  21. * @return
  22. */
  23. @ExceptionHandler(RuntimeException.class)
  24. @ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR)
  25. @ResponseBody
  26. public ModelMap handleUnexpectedServerError(RuntimeException ex, HttpServletRequest request) {
  27. ModelMap map = new ModelMap();
  28. //logger.error(ex);
  29. ex.printStackTrace();
  30. map.put("flag", "failure");
  31. map.put("code", ErrorMessage.SYS_ILLEGAL.getCode());
  32. map.put("message", StringUtils.isEmpty(ex.getMessage())?ErrorMessage.SYS_ILLEGAL.getMessage():ex.getMessage());
  33. // map.put("requestId",request.getHeader("RequestId"));
  34. // map.put("data",null);
  35. return map;
  36. }
  37. /**
  38. * 处理通过BaseUtil.showError抛出的异常
  39. *
  40. * @param ex
  41. * @return
  42. */
  43. @ExceptionHandler(SystemException.class)
  44. @ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR)
  45. @ResponseBody
  46. public ModelMap handleSystemError(SystemException ex, HttpServletRequest request) {
  47. ModelMap map = new ModelMap();
  48. ApiResult apiResult = ex.getApiResult();
  49. map.put("flag", "failure");
  50. map.put("code", apiResult.getCode());
  51. map.put("message",apiResult.getMessage());
  52. // map.put("requestId",apiResult.getRequestId());
  53. // map.put("data",apiResult.getData());
  54. return map;
  55. }
  56. /**
  57. * 处理通过Api接口抛出的异常
  58. *
  59. * @param ex
  60. * @return
  61. */
  62. @ExceptionHandler(ApiSystemException.class)
  63. @ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR)
  64. @ResponseBody
  65. public ModelMap handleApiSystemError(ApiSystemException ex, HttpServletRequest request) {
  66. ModelMap map = new ModelMap();
  67. ApiResult apiResult = ex.getApiResult();
  68. if(apiResult!=null) {
  69. map.put("code", apiResult.getCode());
  70. map.put("message", apiResult.getMessage());
  71. map.put("requestId",apiResult.getRequestId());
  72. map.put("data",apiResult.getData());
  73. }
  74. WMSApiResult wmsApiResult = ex.getWmsApiResult();
  75. if(wmsApiResult!=null){
  76. map.put("response", wmsApiResult);
  77. }
  78. return map;
  79. }
  80. }