Since you guys are having a good discussion on the exceptions handling in
Struts, I would like to ask a lower level question on this topic.
On my JSP I always get a "null" exception something like "[Exception on
\myPage.jsp: null]". At the beginning this exception was very frustrating
since no more details were showing. Now I konw in 90% of the cases, this
exception is from one of the taglibraries. But question is how I can get
more informative details without having a try/catch block on my jsps.

Regards,
Erica

-----Original Message-----
From: Andrew Hill [mailto:[EMAIL PROTECTED]
Sent: Thursday, April 03, 2003 3:33 AM
To: Struts Users Mailing List
Subject: RE: Where to catch/throw Exceptions in Struts Tiered
Architecture


Generally, returning null when it should be an error is considered bad
practice. (If null is a valid return value of course thats a different
matter).
In this case you should throw an exception and catch it in the calling class
and branch or throw again appropriately.
You dont want your calling class to have to know about low level details
like specific sql exceptions though, so instead of just letting the sql
exception propogate upwards, you would catch it and throw a different more
abstract exception (probably one you create yourself) up to the caller - the
caller shouldnt have to know the details about your persistence mechanism -
it just needs to know it failed - and sometimes needs to know if the failure
is fatal and any other pertinent info.
The nested excpetion classes should also be able to keep a reference to the
exception they wrap so the stacktrace show all the exceptions in the chain -
useful when debugging.

btw: If I recall rightly Ted Husted explains this 10 times better in one
tenth the words in his book (struts in action)

Have a look at these articles:
http://developer.java.sun.com/developer/technicalArticles/Programming/except
ions/
http://www-106.ibm.com/developerworks/java/library/j-ejb01283.html
http://www.javaworld.com/javatips/jw-javatip91_p.html

There was another very good one too - but it doesnt seem to be in my
favourites list and I cant seem to find it now.


-----Original Message-----
From: Navjot Singh [mailto:[EMAIL PROTECTED]
Sent: Thursday, 3 April 2003 18:53
To: Struts Users Mailing List; [EMAIL PROTECTED]
Subject: Re: Where to catch/throw Exceptions in Struts Tiered
Architecture


hi andrew,

but surely these long stacktraces are not meant for users ;-)

what i have got from your statement is something like this

SQLException
|__DatabaseException
|____ApplicationException

finally, this ApplicationException is what is being thrown into execute()
call.

May i am novice, but I still need to be convinced about throwing so many
exceptions in chain

Can't the stuff be handled in a simple way --
SAY
a. when you get SQLException, catch and return NULL
b. Calling Class __ifs__ for NULL instead of __catching__ and transfer the
control accordingly.

Is there something i am ignoring?

regards
Navjot Singh

----- Original Message -----
From: "Andrew Hill" <[EMAIL PROTECTED]>
To: "Struts Users Mailing List" <[EMAIL PROTECTED]>
Sent: Thursday, April 03, 2003 3:49 PM
Subject: RE: Where to catch/throw Exceptions in Struts Tiered Architecture


| I use nested exceptions, and virtually all my methods (and thus layers)
| catch and wrap and throw...
| Makes for some impressively long stacktraces - and is marvellous for
| debugging! :-)
|
|
| -----Original Message-----
| From: Navjot Singh [mailto:[EMAIL PROTECTED]
| Sent: Thursday, 3 April 2003 18:05
| To: Struts Users List
| Subject: Where to catch/throw Exceptions in Struts Tiered Architecture
|
|
| Hi,
|
| Take a simple case.
|
|    Action
|       Y
| UserAction -> User -> Database
|       |
|      V
|   user.jsp
|
| Say, Database throws exception. What is best way to handle exception?
|
| 1. Catch in User class and return NULL / some ErrorObject to UserAction
and
| let UserAction decide how to handle it?
|
| 2. Let User class __pass on__ the Exception from Database to UserAction.
|
| 2a. As execute() is already throwing Exception so it will handle ALL so
Set
| <global-exception> handler that can send the user to some nice page?
| 2b. Catch Exception in UserAction and then do some thing ...
|
| Which one do you guys follow in not-so-large scale web applications?
|
| would appreciate any comments.
| -navjot singh
|
|
|
|
| ---------------------------------------------------------------------
| To unsubscribe, e-mail: [EMAIL PROTECTED]
| For additional commands, e-mail: [EMAIL PROTECTED]
|
|
| ---------------------------------------------------------------------
| To unsubscribe, e-mail: [EMAIL PROTECTED]
| For additional commands, e-mail: [EMAIL PROTECTED]
|
|


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


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



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

Reply via email to