目录
1--简单异常处理器:
2--自定义异常处理器:
1--创建处理器类:
2--配置:
SpringMVC异常处理思路
主要是处理:预期异常
异常处理两种方式
简单异常处理处理器:MVC以集成好,主要是页面映射
简单异常处理器:
配置即可用:
在spring-mvc.xml下配置
<!--SpringMVC配置异常处理器-->
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="defaultErrorView" value="error"/>
<property name="exceptionMappings">
<map>
<!-- 类型转换异常-->
<entry key="java.lang.ClassCastException" value="error1"/><!--value值会进行视图拼接,形成真正的路径-->
<entry key="com.itheima.exception.MyException" value="error2"/>
</map>
</property>
</bean>
自定义异常处理器:
创建处理器类:
public class MyExceptionResolver implements HandlerExceptionResolver {
/*
参数Exception:报异常的异常对象
返回值ModelAndView:跳转到错误视图信息
*/
public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {
ModelAndView modelAndView = new ModelAndView();
//判断异常类型,指派普通数据
if(e instanceof MyException){
modelAndView.addObject("info","伍绍恒自定义异常");
}else if(e instanceof ClassCastException){
modelAndView.addObject("info","伍绍恒类转换异常");
}else if (e instanceof FileNotFoundException){
modelAndView.addObject("info","伍绍恒自定义文件找不到异常");
}
modelAndView.setViewName("error");
return modelAndView;
}
}
配置:
在spring-mvc.xml下配置
<!--自定义异常处理器 可以指派视图,更可以设置model数据到错误页面-->
<bean class="com.itheima.resolver.MyExceptionResolver"/>
两种异常处理方法的比较:
-
简单异常处理器更快捷,配置即可用,不需写异常处理类
-
自定义异常处理更灵活,可以设置model模型数据到错误页面