When I started this project (as a way or learning JSP), I have EVERYTHING in JSP pages, meaning that there was a lot of Java code in <% ... %> sections of the JSP page. I added an errorPage declaration to each of my JSP pages to divert all errors to my standard error handling page--and all was well.
Later, I decided to limit the JSP pages to HTML as much as possible and move all of the Java program logic into servlets. I left the errorPage declarations in the JSP pages, although there wasn't much left there to throw an exception.
In the servlets, I used the standard try/catch constructs to intercept exceptions. However, I decided I wanted the exceptions caught in servlets to be handled by the same error page as the JSP pages used. Rather than have EVERY catch{} clause do the redirect, I defined a utility subroutine named errorPage() that collected various information in the catch{} clause, then called sendRedirect() to the error page.
Separate from these catch{} clauses, whenever the processing in a servlet was complete, it ended with a sendRedirect() to the next JSP page followed immediately by a return. I had assumed that the sendRedirect()s in the main servlet code were "safe" from the sendRedirect() in the catch{} cause since--as I understood it--once the exception was thrown and the catch{} entered, nothing else in the servlet was processed.
However, my "IllegalStateException" experience suggests there is something going on with catch{} that I don't understand. Or, as a friend of mine used to say, "I don't understand all I know about that." :-)
To recap, I got an IllegalStateExceptioni pointing to a sendRedirect() in a servlet until I effectively removed the sendRedirect() by returning before the sendRedirect() could be reached. Only then did I see an SQLException intercepted by a catch{} and redirected with sendRedirect() to the error page.
Why did main servlet processing appear to continue (allowing the second sendRedirect() to cause a problem) after the exception was triggered?
Merrill Cornish
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
