这是自定义的异常:public class NoPermissionException extends Exception {    public NoPermissionException(String s) {
        super(s);
    }
}两个Action在xml的配置如下:这个action上的AOP的异常无法捕获<action name="share" class="com.digimaple.webfolder.action.share.ShareAction" method="share">
            <result name="success">../webfolder/share.jsp</result>
            <result name="error">../webfolder/validate.jsp?msg=noexist</result>            <result name="permission">../webfolder/shareMoveResult.jsp?msg=nopermission&amp;val=browser</result>
            <exception-mapping exception="com.digimaple.webfolder.exception.NoPermissionException" result="permission">
            </exception-mapping>
</action>
这个却可以 <action name="pasteShare" class="com.digimaple.webfolder.action.share.PasteShareAction" method="pasteShare">
            <result name="success">/webfolder/shareMoveResult.jsp?msg=success</result>
            <result name="none">/webfolder/shareMoveResult.jsp?msg=none</result>
            <result name="error">/webfolder/shareMoveResult.jsp?msg=error&amp;val=browser</result>            <result name="permission">/webfolder/shareMoveResult.jsp?msg=nopermission&amp;val=browser</result>
            <exception-mapping exception="com.digimaple.webfolder.exception.NoPermissionException" result="permission">
            </exception-mapping>
        </action>       

解决方案 »

  1.   

    没人遇到过这样的问题吗? 这两个action的配置几乎是一样的 。 唯一不同的也许就是前一个的result页面是弹窗的。后一个则是直接跳转的。
      

  2.   

    异常都是自己throw的吗?是不是没到自己try的代码已经有异常了
      

  3.   


    不是 我调试过了 程序确实已经运行到我所抛的异常处了。就是不知道为什么struts2捕获异常后无法跳转到指定result页面。而是直接把异常页显示出来。
    异常页还多了个这个异常:
    java.lang.reflect.UndeclaredThrowableException
    com.digimaple.webfolder.action.share.ShareAction$$EnhancerByCGLIB$$f21d466e.share(<generated>)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    java.lang.reflect.Method.invoke(Method.java:597)……
    ……
    ……下面才出现我抛的异常
      

  4.   

    貌似只要是该ACTION的操作结果是弹窗的,就无法拦截异常。而在当前页面执行的 则可以捕获。 =   =0  莫名其妙啊……
      

  5.   

    弹窗的异常如果产生在弹出的窗体内就得自己继承窗体类再catch吧
      

  6.   

    好久远的帖子但是今天自己也碰到这个问题。。弄了好久。最后发现要给被拦截的方法加throws Exception