1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- package cn.minbb.iot.handler;
- import cn.minbb.iot.data.ResponseResult;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.web.bind.annotation.ExceptionHandler;
- import org.springframework.web.bind.annotation.RestControllerAdvice;
- import org.springframework.web.servlet.ModelAndView;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- @RestControllerAdvice
- public class AppExceptionHandler {
- private Logger logger = LoggerFactory.getLogger(AppExceptionHandler.class);
- @ExceptionHandler(value = Exception.class)
- public Object errorHandler(HttpServletRequest request, HttpServletResponse response, Exception e) throws Exception {
- e.printStackTrace();
- String error = "全局捕获异常\n" + e.getMessage();
- logger.error(error);
- if (isAjax(request)) {
- return ResponseResult.create().success(false).code(-1).message(e.getMessage());
- } else {
- ModelAndView modelAndView = new ModelAndView();
- modelAndView.addObject("TITLE", "IoT");
- modelAndView.addObject("exception", e);
- modelAndView.addObject("url", request.getRequestURL());
- modelAndView.setViewName("app-error");
- return modelAndView;
- }
- }
- /**
- * 判断请求是否为 Ajax 请求
- *
- * @param request HttpServletRequest
- * @return 是否为 Ajax 请求
- */
- private boolean isAjax(HttpServletRequest request) {
- return (null != request.getHeader("X-Requested-With") && "XMLHttpRequest".equals(request.getHeader("X-Requested-With")));
- }
- }
|