Women in Technology

Hear us Roar



Article:
  An Exception Handling Framework for J2EE Applications
Subject:   ?
Date:   2006-01-13 09:13:37
From:   Shrik
Response to: ?

There are reasons why we didn't (rather couldn't) use the Struts declaritive exception handling. First of all, as already mentioned in the article, discussed strategy can be applied anywhere irrespective of whether you are using Struts or any other presentation framework. It can be even used in standalone Java programs also without any changes. So, the target was to have an exception handling framework which could be used anywhere seamlessly. Other reason leads us to understand where to use and where not to use the Struts declaritive exception handling.


Most of the time we would like to generate an ActionError and display it to the
user instead of displaying an error page. Let us take an example:


<struts-config>
<global-exceptions>
<exception
key="xmlparse.error"
type="org.expframework.exception.XmlParseException"
path="/error.jsp"/>
</global-exceptions>
</struts-config>


When XmlParseException is thrown, the user sees error.jsp. This makes sense since XmlParseException is a system exception and the only thing you can do is to ask the user to start all over again. However, it may not make sense to do so when NoRecordFoundException is thrown since this is an application exception from which the user has a recovery path. A better option is to show this as an ActionError and give the user a chance to change search criteria. For situations like this, you have to resort to programmatic
exception handling. And that's what we are doing in the article.


In this article we also discussed about context sensitive exceptions. We can have multiple messages for the same exception based on the context specified. I don't think if you could achieve the same using Struts based declaritive exception handling.

Main Topics Oldest First

Showing messages 1 through 1 of 1.

  • ?
    2006-01-16 23:15:21  sumitaj [View]

    However, it may not make sense to do so when NoRecordFoundException is thrown since this is an application exception from which the user has a recovery path. A better option is to show this as an ActionError and give the user a chance to change search criteria. For situations like this, you have to resort to programmatic
    exception handling


    This emphasizes your cluelessness even more.
    Check out the local exception tags.They
    provide a much cleaner way to implement the same.


    I don't think if you could achieve the same using Struts based declaritive exception handling.


    Struts provides a much better way for localizing messages. Simply add an error code to your BaseException and print the localized message by creating your own ExceptionHandler which extends the struts errorhandler.Map your base exception to
    the custom error handler.