上面的execute()方法可以抛出全部异常,这意味着重写该方法时,完全无须进行任何异常处理,而是把异常直接抛给Struts框架处理;Struts2框架接受到Action抛出的的异常之后,将根据struts.xml文件配置的异常映射,转入指定的视图资源。
声明式异常处理机制由ExceptionMappingInterceptor拦截器负责处理,当某个exception-mapping元素声明的异常被捕获到时,ExceptionMappingInterceptor拦截器就会向ValueStack中添加连个对象:
- exception:表示被捕获异常的Exception对象
- exceptionStack:包含着被捕获异常的栈
Exception两个属性:
exception:此属性指定该异常映射所设置的异常类型。
result:此属性指定Action出现该异常时,系统返回result属性值对应的逻辑视图名。
局部异常映射:将”exception-mapping…”元素作为”action…”元素的子元素配置。
全局异常映射:将”exception-mapping…”元素作为”global-exception-mapping”元素的子元素配置。
产生异常:
struts.xml的配置
可以使用struts2标签来输出异常信息
<s:property value = "exception"/>:输出异常堆栈信息
<s:property value = "exceptionStack" />:输出异常堆栈信息