首页 > 代码库 > 全局的异常捕获Struts2

全局的异常捕获Struts2

自定义一个拦截器实现全局异常捕获~
struts配置文件。
       <interceptors>
           <interceptor name="myException"  class="org.sixtb.portal.base.interceptor.InterceptorHandler"/>
           <!-- 定义一个拦截器栈 -->
           <interceptor-stack name="myExceptionInterceptor">
              <interceptor-ref name="myException" />
  <interceptor-ref name="defaultStack" />
           </interceptor-stack>
       </interceptors>
       <default-interceptor-ref name="myExceptionInterceptor" />
        <global-results>
            <result name="msg">/msg.jsp</result>
        </global-results>
        <global-exception-mappings>
            <exception-mapping exception="java.lang.Exception" result="msg" />
        </global-exception-mappings>

其中myExeption就是自己定义的拦截器,这样既可以实现struts的错误转发又可以在发生错误的时候,自定义的进行处理。
java代码
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

/**
 * @author wuzefeng
 * @version 1.0 @date 2013-9-17
 */
public class InterceptorHandler extends AbstractInterceptor {

    @Override
    public String intercept(ActionInvocation arg0) throws Exception {
        // TODO
        try {
            arg0.invoke();
        } catch (Exception e) {
            e.printStackTrace();
            // TODO: handle exception
        }
        return null;
    }
}
执行arg0.invoke()可以捕获异常信息。

全局的异常捕获Struts2