SAX/Java: Exceptions, Again
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 java.io.IOException (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 -- David Megginson ak117@f... Microstar Software Ltd. dmeggins@m... http://home.sprynet.com/sprynet/dmeggins/ xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev@i... Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ To (un)subscribe, mailto:majordomo@i... the following message; (un)subscribe xml-dev To subscribe to the digests, mailto:majordomo@i... the following message; subscribe xml-dev-digest List coordinator, Henry Rzepa (mailto:rzepa@i...)
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format