zoukankan      html  css  js  c++  java
  • 后端——框架——视图层框架——spring_mvc——《官网》阅读笔记——第一章节6(核心对象,异常处理器,SimpleMappingExceptionResolver)

      它的概念是建立异常类型与错误页面之间的映射关系,即出错之后,跳转到指定的页面。

    1、属性

      它有以下几个属性:

    1. exceptionsMapping:异常类型与页面之间的映射关系,key值为异常类型,value值为页面,它会经过ViewResolver处理。
    2. excludedExceptions:排除这些异常。
    3. defaultErrorView:若抛出的异常类型在exceptionsMapping找不到映射关系,使用默认的页面。抛出的异常类型不包含excluedExceptions中的值。
    4. defaultStatusCode:默认的状态码

    2、使用

      使用SimpleMappingExceptionResolver的步骤如下:

    1. 第一步,创建SimpleMappingExceptionResolver对象,配置上述的属性
    2. 第二步,注册。注解方式是通过重写configureHandlerExceptionResolvers方法。Xml方式是通过配置SimpleMappingExceptionResolver的bean。

    3、示例

      第一步,创建exception.properties,建立异常与页面的映射关系

    #  算术异常
    java.lang.ArithmeticException = error/arithmeticException
    

      第二步,创建SimpleMappingExceptionResolver对象,加载exception.properties文件,并配置上述属性

    	/**
    	 * 
    	 * @Title: getSimpleMappingExceptionResolver
    	 * @Description:配置SimpleMappingExceptionResolver
    	 * @return
    	 */
    	private SimpleMappingExceptionResolver getSimpleMappingExceptionResolver() {
    		// 创建SimpleMappingExceptionResolver
    		SimpleMappingExceptionResolver simple = new SimpleMappingExceptionResolver();
    		// 加载exception.properties
    		Properties exceptions = new Properties();
    		// 添加算术异常,可以改进为Properties文件
    		exceptions.put("java.lang.ArithmeticException", "error/arithmeticException");
    		// 添加异常与页面的映射关系
    		simple.setExceptionMappings(exceptions);
    		// 排除异常,排除空指针异常
    		simple.setExcludedExceptions(NullPointerException.class);
    		// 设置默认的异常跳转页面
    		simple.setDefaultErrorView("error/error.jsp");
    		// 设置默认的异常码
    		simple.setDefaultStatusCode(999);
    		return simple;
    	}
    

      第三步,注册,重写configureHandlerExceptionResolvers方法。方法的参数为HandlerExceptionResolver集合,把新创建的对象添加到集合中

    /**
     * 
     * 添加异常处理解析器
     * 
     */
    @Override
    public void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> resolvers) {
    	// 注册SimpleMappingExceptionResolver
    	resolvers.add(getSimpleMappingExceptionResolver());
    }
    

      第四步,测试,在Controller方法中运行1/0,抛出算术异常,验证结果。

  • 相关阅读:
    80x86的保护模式
    计算机二进制的表示
    操作系统基本知识(一)
    记录一次在安装双系统的过程(先有debian, 后加windows 8.1)
    LitePal + Gson + Volley的ORM框架尝试方案
    如何使用DDMS Heap查看Android应用内存情况
    测试驱动开发的第一个例子---我的毕业设计
    策略模式的孪生兄弟---状态模式
    面试常备---栈和队列总结篇
    面试常备题---二叉树总结篇
  • 原文地址:https://www.cnblogs.com/rain144576/p/12903072.html
Copyright © 2011-2022 走看看