package com.uas.eis.exception; import javax.servlet.http.HttpServletRequest; import org.apache.log4j.Logger; import org.springframework.http.HttpStatus; import org.springframework.ui.ModelMap; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseStatus; import com.uas.eis.utils.StringUtil; @ControllerAdvice public class ExceptionHandlerAdvice { private final static Logger logger = Logger.getLogger(ExceptionHandlerAdvice.class); /** * 处理未被发现处理的运行时抛出异常 * * @param ex * @return */ @ExceptionHandler(RuntimeException.class) @ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR) @ResponseBody public ModelMap handleUnexpectedServerError(RuntimeException ex, HttpServletRequest request) { ModelMap map = new ModelMap(); //logger.error(ex); ex.printStackTrace(); map.put("exceptionInfo", ex.getMessage()); return map; } /** * 处理通过BaseUtil.showError抛出的异常 * * @param ex * @return */ @ExceptionHandler(SystemException.class) @ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR) @ResponseBody public ModelMap handleSystemError(SystemException ex, HttpServletRequest request) { ModelMap map = new ModelMap(); map.put("exceptionCode", ex.getErrorCode()); map.put("exceptionInfo", ex.getMessage()); return map; } }