I agree with everything Dmitri said, but was thinking of something like
this (for a base class in the Actions package), which may be what Laine
is also suggesting:

public class DispatchExceptionAction extends Action {
    public ActionForward doPerform(
                 ActionMapping mapping,
                 ActionForm form,
                 HttpServletRequest request,
                 HttpServletResponse response)
    throws Exception {  

        // Override this class instead of perform
        // and return ActionForwards in the 
        // usual way; but use with the alternative 
        // of ExceptionForwards instead of try catch

       return null;
    }

    public ActionForward perform(
                 ActionMapping mapping,
                 ActionForm form,
                 HttpServletRequest request,
                 HttpServletResponse response)
    throws IOException, ServletException {
        ActionForward forward = null;
        try {
            forward = doPerform(mapping,form,request,response);
        }
        catch (Exception e) {

                // Lookup exceptions here
                // and set forward
                // or ..

            throw new ServletException(e);

        }

        return forward;
   }

Later on, I would like to build this deeper into the framework, but
don't know how to manage the signature shift without breaking the
installed base. Perhaps a job for Struts 2 ... which might include a
signature updater ...

I'd also like for us to commit a base exception class like the one Laine
submitted, that also emulates the 1.4 chaining functionality, and any
other goodies like the ones Dmitri mentioned (any chance of donating
that?).

Dmitri - also feel free to submit your other wishes as Bugzilla
enhancements, so they do not get lost in the shuffle.


-- Ted Husted, Husted dot Com, Fairport NY USA.
-- Custom Software ~ Technical Services.
-- Tel +1 716 737-3463
-- http://www.husted.com/struts/

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to