[
Lists Home |
Date Index |
Thread Index
]
On Sat, 27 Nov 2004, Tim Bray wrote:
> I'm writing some java code that uses a basic SAX parser, and I haven't
> done this for years if ever, and the callback routines all have
> signatures that throw SAXExceptions, e.g.
>
> public void characters(char [] s, int start, int length)
> throws SAXException
>
> So, suppose I'm in this callback and something horrible happens; for
> example I discover that the content that I'm looking at here is
> completely bogus.
The wrapped-exception pattern is a pretty common solution to the visibility
problem posed by call-back APIs. The call-back code is in your class, but
when a problem arises, your method is sitting on top of somebody else's
method in the call stack. So you need some way of "tunneling" your
exception through.
If this really irks you, maybe you want to consider a pull parser instead?
A pull parser will allow you to throw your own exceptions directly, thereby
making it easier for your caller to distinguish exceptions of validation or
well-formedness from others you may wish to throw.
// Gregory Murphy. Isopaleocopria.
|