后端——框架——视图层框架——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,抛出算术异常,验证结果。

原文地址:https://www.cnblogs.com/rain144576/p/12903072.html