SpringMVC全局异常处理
程序员文章站
2022-04-21 23:49:05
...
在日常的开发过程中,你肯定遇到过页面报500的问题,这个时候如果我想一想就会觉得害怕,我们的项目如果真的在线上出现这样的问题,有时候,问题就非常严重,特别是看到页面的人心怀叵测。因为我们项目的个别包名就会直接暴露在外面,这样就给了那些人钻空子的机会,今天就来解决这个问题。
全局异常处理
- 在项目中添加一个类,这个类实现接口
org.springframework.web.servlet.HandlerExceptionResolver
,然后实现其中的ModelAndView resolveException(HttpServletRequest, HttpServletResponse, Object, Exception);
方法,如:import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import org.springframework.web.servlet.HandlerExceptionResolver; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.view.json.MappingJacksonJsonView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @Component @Slf4j public class ExceptionResolver implements HandlerExceptionResolver { @Override public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { log.error("Exception in:" + request.getRequestURI(), ex); ModelAndView modelAndView = new ModelAndView(new MappingJacksonJsonView());// jackson 1.x //ModelAndView modelAndView = new ModelAndView(new MappingJackson2JsonView());// jackson 2.x modelAndView.addObject("status", ResponseCode.ERROR.getCode()); modelAndView.addObject("message", "接口异常,详情请查看日志中的异常信息"); modelAndView.addObject("data",ex.toString()); return modelAndView; } }
- 。。。