Re: SAX: 1998-04-18 pre-release

Peter Murray-Rust (peter@ursus.demon.co.uk)
Sun, 19 Apr 1998 09:14:07


At 14:12 19/04/98 +0700, James Clark wrote:
>Making the read methods on ByteStream and CharacterStream throw
>SAXException seems wrong to me. In a Java environment I need to be able
>to throw an IOException. So they should be declared as throwing either
>Exception or IOException. The approach in InputStreamAdapter of just
>passing through the message from IOExceptions is not acceptable. An
>application may need to deal with different classes of IOExceptions
>differently, so it needs to be possible to propagate the IOException up
>to Parser.parse.

I agree with James. By passing the message alone you lose the information
such as where the exception originally occurred. I have struggled with this
a lot - if a program reduces everything to Exception it can be difficult
to document it but if all exceptions are passed up then it gets very messy.

[In JUMBO I use a JumboException - rather like SAXException, but use it to
*contain* other exceptions rather than lose their information. This is
probably an interim solution until the hierarchy gets sorted out.]

P.

Peter Murray-Rust, Director Virtual School of Molecular Sciences, domestic
net connection
VSMS http://www.nottingham.ac.uk/vsms, Virtual Hyperglossary
http://www.venus.co.uk/vhg