Yes you are chaining, but if you write to a database, for example, the user 
could refresh the page and re-write to the database.  The point I was trying to 
make was to use the PRG pattern.




> Date: Mon, 19 Jan 2009 03:27:57 -0800
> From: ga...@prodia.co.uk
> To: user@struts.apache.org
> Subject: RE: exception handling
> 
> 
> I must be misunderstanding something, is that not what I am already doing my
> chaining to another action?
> 
> 
> 
> Andy Hahn wrote:
> > 
> > Regarding to the first responder - you could take this a step further and
> > have ActionUnhandledExceptionHandler redirect to another action (Redirect
> > After Post)‏.
> > 
> > 
> > 
> > 
> >> Date: Sun, 18 Jan 2009 06:24:24 -0800
> >> From: ga...@prodia.co.uk
> >> To: user@struts.apache.org
> >> Subject: Re: exception handling
> >> 
> >> 
> >> I know this is slightly different from the way you are trying it but this
> >> is
> >> the way I am currently doing it is:
> >> 
> >> <global-exception-mappings>
> >>         <exception-mapping exception="java.lang.Exception"
> >> result="unhandledExceptionHandler"/>
> >> </global-exception-mappings>
> >> 
> >> 
> >> <global-results>
> >>         <result name="unhandledExceptionHandler" type="chain">
> >>                  <param
> >> name="actionName">actionUnhandledExceptionHandler</param>
> >>                  <param name="namespace">/unsecured</param>
> >>         </result>
> >> <global-results>
> >> 
> >> 
> >> and then I define an action - actionUnhandledExceptionHandler:
> >> 
> >> public class ActionUnhandledExceptionHandler extends BaseActionSupport {
> >> 
> >> private Exception exception;
> >> 
> >> @Override()
> >>     public String execute() {
> >> 
> >>         if(exception != null){
> >>             logException(serviceProsocUser , exception);
> >> 
> >>             // Send the user to the error page with a message
> >>             addActionError(getText("common.unknown.exception") + "<div
> >> class=\"errorMessageExceptionText\">" + exception.toString() + "</div>");
> >> 
> >>             return ERROR;
> >>             
> >>         } else {
> >>             logger.error("***** TRIED TO LOG EXCEPTION BUT EXCEPTION WAS
> >> NULL! I HAVE NOT LOGGED THIS EXCEPTION! *****");
> >>         }
> >> 
> >>        
> >> addActionError(getText("actionUnhandledExceptionHandler.could.not.log.exception"));
> >>         return "canNotLogDatabaseError";
> >>     }
> >> 
> >> public void setException(Exception exception) {
> >>         this.exception = exception;
> >>     }
> >> }
> >> 
> >> 
> >> The logException method calls this to get the actual stacktrace:
> >> 
> >> public String exceptionStackTraceToString(Exception exception){
> >> 
> >>         StringWriter stringWriter = new StringWriter();
> >>         exception.printStackTrace(new PrintWriter(stringWriter));
> >>         String stackTrace = stringWriter.toString();
> >> 
> >>         // As stackTrace may contain regular expression special
> >> characters
> >> we need to make them harmless first
> >>         return Matcher.quoteReplacement(stackTrace);
> >>     }
> >> 
> >> I then, from within logException, write the exception to an email and the
> >> database but you can of course do what you like with it.
> >> 
> >> HTH
> >> 
> >> 
> >> 
> >> JJ__ wrote:
> >> > 
> >> > Hello,
> >> > I am trying to implement declarative exception handling for all the
> >> > possible exceptions. The problem is that in this way I only catch some
> >> > exceptions (not all of them) and I cant get its stack trace nor its
> >> > message(it is only rendered the rest of my JSP but not the information
> >> > about the stack or message about the excepion). I have this:
> >> > 
> >> > In my struts.xml
> >> >         <global-results>
> >> >             <result name="handleException"
> >> > type="redirect">error.jsp</result>
> >> >         </global-results>
> >> >         
> >> >         <global-exception-mappings>
> >> >             <exception-mapping result="handleException"
> >> > exception="java.lang.Exception"/>
> >> >         </global-exception-mappings>
> >> > 
> >> > And in my JSP
> >> >    <%@ taglib prefix="s" uri="/struts-tags" %>
> >> > ...
> >> >         <s:property value="%{exception.message}"/>
> >> >         <s:property value="%{exceptionStack}"/>
> >> > 
> >> > Thanks in advanced
> >> > 
> >> > 
> >> > 
> >> > 
> >> > 
> >> 
> >> -- 
> >> View this message in context:
> >> http://www.nabble.com/exception-handling-tp21518870p21528352.html
> >> Sent from the Struts - User mailing list archive at Nabble.com.
> >> 
> >> 
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
> >> For additional commands, e-mail: user-h...@struts.apache.org
> >> 
> > 
> > _________________________________________________________________
> > Windows Live™ Hotmail®: Chat. Store. Share. Do more with mail. 
> > http://windowslive.com/howitworks?ocid=TXT_TAGLM_WL_t1_hm_justgotbetter_howitworks_012009
> > 
> 
> -- 
> View this message in context: 
> http://www.nabble.com/exception-handling-tp21518870p21541248.html
> Sent from the Struts - User mailing list archive at Nabble.com.
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
> For additional commands, e-mail: user-h...@struts.apache.org
> 

_________________________________________________________________
Windows Live™: Keep your life in sync.
http://windowslive.com/explore?ocid=TXT_TAGLM_WL_t1_allup_explore_012009

Reply via email to