处理器抛出异常,给中央调度器,由中央调度器捕获异常,调用异常处理器对象,集中处理 

框架把视线HandlerExceptionResolver接口的类叫做异常处理器,只有异常处理器能够处理异常

(二十五)异常处理--同一异常处理器_异常信息

//定义一个简单的异常类
public class CustomException extends Exception {

//异常信息
public String message;

public CustomException(String message) {
super(message);
this.message = message;
}

public String getMessage() {
return message;
}

public void setMessage(String message) {
this.message = message;
}

}


 

(二十五)异常处理--同一异常处理器_异常信息_02

 接下来就是写测试程序了,还是使用查询的例子,如下: 

(二十五)异常处理--同一异常处理器_抛出异常_03

 然后我们在前台输入url来测试:http://localhost:8080/SpringMVC_Study/editItems.action?id=11,故意传一个id为11,我的数据库中没有id为11的项,所以肯定查不到,反正让它查不到即可。这样它就会抛出自定义的异常,然后被上面配置的全局异常处理器捕获并执行,跳转到我们指定的页面,然后显示一下该商品不存在即可。所以这个流程是很清晰的。 

  从上面的过程可知,使用SimpleMappingExceptionResolver进行异常处理,具有集成简单、有良好的扩展性(可以任意增加自定义的异常和异常显示页面)、对已有代码没有入侵性等优点,但该方法仅能获取到异常信息,若在出现异常时,对需要获取除异常以外的数据的情况不适用。