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,抛出算术异常,验证结果。

  • 相关阅读:
    系统集成项目管理工程师高频考点(第一章)
    2、无重复字符的最长子串
    1、爬楼梯
    webpack起步
    Centos7安装nginx
    Centos7安装nacos
    Centos7安装java和maven
    centos7安装fastDFS
    aop中获取请求消息和属性
    数据库面对高并发的思路
  • 原文地址:https://www.cnblogs.com/rain144576/p/12903072.html
Copyright © 2011-2022 走看看