SAX/Java: Exceptions, Again

David Megginson ak117 at
Fri Jan 9 02:21:07 GMT 1998

I think that I've just answered my own question about Exception
handling in the Java implementation of SAX.  There is no reason that
the SAX frontend for each parser cannot pack exceptions from the
callbacks into a container and unpack them for the top-level
transparently -- that way, the parser can still have tight
compile-time error checking, but application writers won't have to
jump through hoops to throw exceptions to the top level.  Unless I
read a good argument to the contrary, then, the interface will look
like this:

  public void startDocument ()
    throws java.lang.Exception;

  public void endDocument ()
    throws java.lang.Exception;

  public void characters (char ch[], int start, int end)
    throws java.lang.Exception;

  /* etc. */

Implementations can use much stricter type checking themselves, and
are not required to throw any exceptions at all -- the Java interface
just gives the boundary (in this case, any or no exceptions).

I still need to define what a SAX parser is allowed to catch and what
it may pass through.  Here's a rough sketch:

1) A parser must catch all of its own, internal exceptions (i.e. no
   SAX parser should throw an exception that others do not -- this can
   be managed in the SAX frontend if necessary).

2) A parser may catch any exceptions derived from (that includes the networking exceptions), but
   only if it is capable of resolving or working around the problem
   corresponding to the exception; otherwise, it must throw it on
   through to the top-level user code.

3) A parser must pass all other exceptions up to the user code.

What am I missing in this list?

All the best,


David Megginson                 ak117 at
Microstar Software Ltd.         dmeggins at

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at
Archived as:
To (un)subscribe, mailto:majordomo at the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at

More information about the Xml-dev mailing list