· exception-mapping元素 : 配置当前action的声明式异常处理
· exception-mapping元素中有两个属性
–exception : 指定需要捕获的异常类型的全类名.
–result : 指定一个响应结果,该结果将在捕获到指定异常时被执行,既可以来自当前action的声明,也可以来自global-results声明
例
<action name="input" >
<exception-mapping result="/error.jsp" exception="java.lang.NullPointerException"></exception-mapping>
<result>/success1.jsp</result>
</action>
<action name="input" >
<result>/success.jsp</result>
</action>
· 可以通过global-exception-mappings元素为应用程序提供一个全局性的异常捕获映射
例
<package name="helloword" extends="struts-default" >
//声明了一个全局的异常响应结果,并定义了name属性,在Package中所有的异常处理都可以引用该异常响应结果(即引用name属性)
<global-results>
<result name="input1">/error.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping result="input1" exception="java.lang.Exception"></exception-mapping>
</global-exception-mappings>
<action name="input" >
<result>/success1.jsp</result>
</action>
<action name="input" >
<result>/success.jsp</result>
</action>
<action name="product-save" class="com.ty.exer.Product" method="save">
<result name="details">/WEB-INF/pages/details.jsp</result>
</action>
</package>
· 声明式异常处理机制由ExceptionMappingInterceptor拦截器负责处理,当某个exception-mapping元素声明的异常被捕获到时,ExceptionMappingInterceptor拦截器就会向ValueStack添加两个属性
~~exception : 表示被捕获异常的Exception对象
~~exceptionStack : 包含着被捕获异常的栈.