[jdom-interest] NoSuch*Exceptions in JDOM

Patrick Dowler Patrick.Dowler at nrc.ca
Fri Jun 16 10:31:21 PDT 2000

On Fri, 16 Jun 2000, Jools Enticknap wrote:
> It's a dichotomy, for NoSuchElementException to exist in this context
> because for an element not to have a child is perfectly reasonable, and
> it's not an exceptional condition. IMOHO.

100% agreed. 

All the arguments about which design entails the most code are not particularly
relevant. You have to be able to deal with the fact that a child isn't there,
and it has been shown that every method is about the same, codewise.

However, Jools has hit the nail on the head here: the standard use of
exceptions is to signal an error (typically in usage, such as invalid input
to a method, sometimes a programming error). 

BTW, if getChild() were to return null on occasion, the people who like to
chain a bunch of getChild calls together can still do it:

		attr = el.getChild("foo").getChild("bar").getAttribute("id");
		// do something
	catch (NullPointerException ex)
		// ooops, one of the gets returned null

However, people who like to check for null can do it their way too. Since
a child might not exist, you have to check in any robust code. Returning
null is more consistent with standard Java style. For style, I look to
java.util.Map.get(Object key), which returns null if the key doesn't exist.
This is the most similar operation in the collections classes.


Patrick Dowler
Canadian Astronomy Data Centre

More information about the jdom-interest mailing list