You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Wendy Smoak <ja...@wendysmoak.com> on 2005/02/25 18:26:54 UTC

Trying to understand exceptions and

With nothing configured for errors, I get a Tomcat error page:

HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it
from fulfilling this request.
exception
javax.servlet.ServletException: org.xml.sax.SAXParseException: blah, blah...
...
root cause
com.example.DAOException: org.xml.sax.SAXParseException: blah, blah...
...
Caused by: org.xml.sax.SAXParseException: blah, blah...

The code that causes it looks like this:

     try {
          ...
     } catch ( Exception ex ) {
         throw new DAOException( ex );
     }

Can someone explain why, if I put this in web.xml,

  <error-page>
      <exception-type>javax.servlet.ServletException</exception-type>
      <location>/WEB-INF/jsp/error/exception.jsp</location>
   </error-page>

it does NOT display the .jsp and instead shows the same thing as above with
all the stack traces?

I also tried configuring it for java.lang.Exception, but no luck there,
either.

I _can_ get a good error page if I configure it for the 'root cause'
DAOException, I'm just confused as to why I can't trap the ServletException.

Thank you,
Wendy Smoak
http://wiki.wendysmoak.com/cgi-bin/wiki.pl?TomcatErrorPage


---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org


Re: Trying to understand exceptions and

Posted by Wendy Smoak <ja...@wendysmoak.com>.
From: "Mike Curwen" <g_...@globallyboundless.com>
> I've successfully caught 'all other' exceptions (which I suppose must
> include ServletExceptions), by using one error-page declaration that
catches
> <status-code>500</status-code>, and then multiple <exception-type>'s to
> catch more specific exception types.

Thanks, that's a great idea. :) I didn't think of using both
<exception-type> and <status-code>.

Actually most of my 'regular' exceptions are configured in
struts-config.xml, but I've been unsuccessful in catching the really
horribly bad ones, and I'd rather not show stack traces if I can avoid it.

-- 
Wendy Smoak



---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org


RE: Trying to understand exceptions and

Posted by Mike Curwen <g_...@globallyboundless.com>.
Part of the spec says "if no error-page declaration containing an
exception-type fits using the class-heirarchy match, and the exception
thrown is a ServletException or subclass thereof, the container extracts the
wrapped exception..."
 
So supposing for a minute that Tomcat internals "ignore" any error-page that
has exception-type 'ServletException', it would then proceed to unwrap the
exception to get down to your DAOException. Which you've already proved that
you *can* catch.
 
 
I've successfully caught 'all other' exceptions (which I suppose must
include ServletExceptions), by using one error-page declaration that catches
<status-code>500</status-code>, and then multiple <exception-type>'s to
catch more specific exception types.

This is all on TC5.0.28 (TC4.x seemed a bit flakey on exceptions and
errorpages, but that could have been PEBKAC)



> -----Original Message-----
> From: Wendy Smoak [mailto:java@wendysmoak.com] 
> Sent: Friday, February 25, 2005 11:27 AM
> To: Tomcat Users List
> Subject: Trying to understand exceptions and <error-page>
> 
> 
> With nothing configured for errors, I get a Tomcat error page:
> 
> HTTP Status 500 -
> type Exception report
> message
> description The server encountered an internal error () that 
> prevented it from fulfilling this request. exception
> javax.servlet.ServletException: 
> org.xml.sax.SAXParseException: blah, blah... ... root cause
> com.example.DAOException: org.xml.sax.SAXParseException: 
> blah, blah... ... Caused by: org.xml.sax.SAXParseException: 
> blah, blah...
> 
> The code that causes it looks like this:
> 
>      try {
>           ...
>      } catch ( Exception ex ) {
>          throw new DAOException( ex );
>      }
> 
> Can someone explain why, if I put this in web.xml,
> 
>   <error-page>
>       <exception-type>javax.servlet.ServletException</exception-type>
>       <location>/WEB-INF/jsp/error/exception.jsp</location>
>    </error-page>
> 
> it does NOT display the .jsp and instead shows the same thing 
> as above with all the stack traces?
> 
> I also tried configuring it for java.lang.Exception, but no 
> luck there, either.
> 
> I _can_ get a good error page if I configure it for the 'root 
> cause' DAOException, I'm just confused as to why I can't trap 
> the ServletException.
> 
> Thank you,
> Wendy Smoak http://wiki.wendysmoak.com/cgi-bin/wiki.pl?TomcatErrorPage
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org