1、简述&环境搭建
异常处理器: 实现了HandlerExceptionResolver接口
作用:用来处理springMVC中 控制器出现的异常
一般一个项目有一个异常处理器
Demo1Resolver
@Component
public class Demo1Resolver implements HandlerExceptionResolver{
/*
* 处理异常
* */
@Override
public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
System.out.println("项目出现异常了:"+ex.getMessage());
return null;
}
}
2、代码实现
异常处理器:
@Component
public class Demo1Resolver implements HandlerExceptionResolver{
/*
* 处理异常
* 1、设置错误信息,并跳转页面
* 2、获取request、session、ServletContext作用域的数据
* 3、可以向响应体写出内容
* */
@Override
public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
System.out.println("项目出现异常了:"+ex.getMessage());
//1、设置错误信息,并跳转页面
ModelAndView mav = new ModelAndView();
mav.addObject("errorMsg","出现异常了:"+ex.getMessage());
mav.setViewName("errorMsg");
//2、获取request、session、ServletContext作用域的数据
// request.getSession();
// request.getServletContext();
//3、可以向响应体写出内容 和ModelAndView不建议同时设置
/*try {
//将来这里会向浏览器输出json数据
//设置解决响应体乱码
response.setContentType("text/html;charset=utf-8");
response.getWriter().write("你好,我出错了");
//可以让响应体正常输出的代码
response.getWriter().flush();
} catch (IOException e) {
e.printStackTrace();
}*/
return mav;
}
}
小结:
异常处理器:仅在控制器方法出现异常时才会被触发执行。