SpringMVC笔记(5)---异常处理机制


1. 异常处理方式

系统中异常包括两类:预期异常和运行时异常RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发、测试等手段减少运行时异常的发生。

  1. 使用SpringMVC提供的简单异常处理器
    SimpleMappingExceptionResolver
  2. 实现Spring的异常处理接口HandlerExceptionResolver自定义的异常处理器

2. 简单异常处理器SimpleMappingExceptionResolver

该类型转换器是SpringMVC已经定义好了的,使用时根据项目的情况进行相应的异常与视图的映射配置

<!--配置简单映射异常处理器-->
<bean class=“org.springframework.web.servlet.handler.SimpleMappingExceptionResolver”>    
<property name=“defaultErrorView” value=“error”/>   <!--默认错误视图-->
    <property name=“exceptionMappings”>
        <map>        <!--异常类型-->                              <!--错误视图-->
            <entry key="com.itheima.exception.MyException" value="error"/>
            <entry key="java.lang.ClassCastException" value="error"/>
        </map>
    </property>
</bean>

3.自定义异常处理步骤

  1. 创建异常处理器实现HandlerExceptionResolver
    public class MyExceptionResolver implements HandlerExceptionResolver {
    @Override
    public ModelAndView resolveException(HttpServletRequest request, 
     HttpServletResponse response, Object handler, Exception ex) {
     //处理异常的代码实现
     //创建ModelAndView对象
     ModelAndView modelAndView = new ModelAndView(); 
     modelAndView.setViewName("exceptionPage");
     return modelAndView;
     }
    }
  2. 配置异常处理器
    <bean id="exceptionResolver"        
       class="com.itheima.exception.MyExceptionResolver"/>
  3. 编写异常页面
  4. 测试异常跳转
    @RequestMapping("/quick22")
    @ResponseBody
    public void quickMethod22() throws IOException, ParseException {
     SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); 
     simpleDateFormat.parse("abcde");
    }

  目录