spring开发指南(夏昕)Spring 高级特性:Spring MVC中的异常处理

以前面的注册系统为例,首先,在Dispatcher配置文件Config.xml中增加id为“exceptionResolver”的bean定义: 
<bean id="exceptionResolver" 
class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> 
<property name="defaultErrorView"> 
<value>failure</value> 
</property> 

<property name="exceptionMappings"> 
   <props> 
     <prop key="java.sql.SQLException">showDBError</prop> 
     <prop key="java.lang.RuntimeException">showError</prop> 
   </props> 
</property> 
</bean>

通过SimpleMappingExceptionResolver我们可以将不同的异常映射到不同的jsp页面(通过exceptionMappings属性的配置) ,同时我们也可以为所有的异常指定一个默认的异常提示页面(通过defaultErrorView属性的配置) ,如果所抛出的异常在exceptionMappings中没有对应的映射,则Spring将用此默认配置显示异常信息(注意这里配置的异常显示界面均仅包括主文件名,至于文件路径和后缀已经在viewResolver中指定) 。 
一个典型的异常显示页面如下: 
<html> 
<head><title>Exception!</title></head> 
<body> 
<% Exception ex = (Exception)request.getAttribute("Exception"); %> 
<H2>Exception: <% ex.getMessage();%></H2> 
<P/> 
<% ex.printStackTrace(new java.io.PrintWriter(out)); %> 
</body> 
</html>

如果SimpleMappingExceptionResolver无法满足异常处理的需要,我们可以针对HandlerExceptionResolver接口实现自己异常处理类,这同样非常简单(只需要实现一个resolveException方法)。

原文地址:https://www.cnblogs.com/danghuijian/p/4400081.html