ExceptionHandlerAdvice.java 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package com.uas.eis.exception;
  2. import com.uas.eis.entity.ErrorMsg;
  3. import com.uas.eis.sdk.entity.ApiResult;
  4. import org.apache.log4j.Logger;
  5. import org.springframework.http.HttpStatus;
  6. import org.springframework.ui.ModelMap;
  7. import org.springframework.web.bind.annotation.ControllerAdvice;
  8. import org.springframework.web.bind.annotation.ExceptionHandler;
  9. import org.springframework.web.bind.annotation.ResponseBody;
  10. import org.springframework.web.bind.annotation.ResponseStatus;
  11. import javax.servlet.http.HttpServletRequest;
  12. @ControllerAdvice
  13. public class ExceptionHandlerAdvice {
  14. private final static Logger logger = Logger.getLogger(ExceptionHandlerAdvice.class);
  15. /**
  16. * 处理未被发现处理的运行时抛出异常
  17. *
  18. * @param ex
  19. * @return
  20. */
  21. @ExceptionHandler(RuntimeException.class)
  22. @ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR)
  23. @ResponseBody
  24. public ModelMap handleUnexpectedServerError(RuntimeException ex, HttpServletRequest request) {
  25. ModelMap map = new ModelMap();
  26. //logger.error(ex);
  27. ex.printStackTrace();
  28. map.put("errCode", -1);
  29. map.put("errMsg", "server error");
  30. map.put("errDesc",ex.getMessage());
  31. return map;
  32. }
  33. /**
  34. * 处理通过BaseUtil.showError抛出的异常
  35. *
  36. * @param ex
  37. * @return
  38. */
  39. @ExceptionHandler(SystemException.class)
  40. @ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR)
  41. @ResponseBody
  42. public ModelMap handleSystemError(SystemException ex, HttpServletRequest request) {
  43. ModelMap map = new ModelMap();
  44. ErrorMsg errorMsg = ex.getErrorMsg();
  45. map.put("errCode", errorMsg.getErrCode());
  46. map.put("errMsg", errorMsg.getErrMsg());
  47. map.put("errDesc",errorMsg.getErrDesc());
  48. return map;
  49. }
  50. /**
  51. * 处理通过Api接口抛出的异常
  52. *
  53. * @param ex
  54. * @return
  55. */
  56. @ExceptionHandler(ApiSystemException.class)
  57. @ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR)
  58. @ResponseBody
  59. public ModelMap handleApiSystemError(ApiSystemException ex, HttpServletRequest request) {
  60. ModelMap map = new ModelMap();
  61. ApiResult apiResult = ex.getApiResult();
  62. map.put("code", apiResult.getCode());
  63. map.put("message", apiResult.getMessage());
  64. map.put("requestId",apiResult.getRequestId());
  65. map.put("data",apiResult.getData());
  66. return map;
  67. }
  68. }