Java Mailing List Archive

http://www.junlu.com/

Google
Google
Mailing List
Home
Forum Home
JBoss - Java Application Server
Struts - A MVC web framework
Tomcat - JSP/Servlet container
iText - An open source PDF Java Library
JDOM - JDOM XML Parser
J2EE - A mailing list for Java(tm) 2 Platform, Enterprise Edition
J2EE Pattern - An interest list for Sun Java Center J2EE Pattern Catalog
Servlet - A mailing list for discussion about Sun Microsystem's Java Servlet API Technology
JSP - A mailing list about Java Server Pages specification and reference
Struts & Hibernate
Subjects
JSP editor plugin for eclipse ?
org apache jasper JasperException: Unable to compile class for JSP
Tomcat: Connection reset by peer: socket write error
Cannot retrieve definition for form bean null
Struts Tiles Tutorial (free Struts training)
Where do I download Tomcat 4 0 6?
Data Access Object (DAO) pattern, example DAO 's
Where to download Tomcat v 4 1 24 from?
Tomcat 5 0 16 Requested resource not available
Oracle Connection Pooling in 3 2 2
Servlet : Session invalidate
Servlet action is currently unavailable
Tomcat/Struts Unicode Encoding/Decoding problems
Tomcat and webapplication specific java library path
Running a Simple JMS Example
Mapping in workers2 properties
org apache jasper JasperException
Cannot find message resources under key org apache struts action
   MESSAGE
problem with html:text bean throwing exception
Cannot find message resources under key org apache struts action MESSAGE
invalid direct reference problem with solution
Tool for jsp debug Try Sysdeo Eclipse Plugin
Tomcat 5 Cannot load JDBC driver class 'null ' SQL state: null
weblogic ejbc
java properties file
Jboss 3 2 3 Coyote Can 't re
Tomcat 5, Apache2 and mod jk2 integration problem
JBoss example problem new to J2EE
url string for connecting jboss to oracle
Value attribute of <html:checkbox
javax servlet ServletException: BeanUtils populate
HTTP Status 404 The requested resource is not available
5 0 18: Windows XP Pro vs Windows 2000
 
How is catch{} code handled

How is catch{} code handled

2004-01-02       - By Merrill Cornish

 Back
Reply:     1     2     3     4     5     6  

My sudden IllegalStateException problem turned out to be caused by my
error handling technique, but I'm not sure why.

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: tomcat-user-unsubscribe@(protected)
For additional commands, e-mail: tomcat-user-help@(protected)




©2008 junlu.com - Jax Systems, LLC, U.S.A.