[jdom-interest] NoSuch*Exceptions in JDOM
Dino Valente
dino at 3dstockcharts.com
Mon Jun 19 10:52:22 PDT 2000
At 11:28 AM 6/19/00 -0500, you wrote:
>Jim Rudnicki wrote:
>>
>> Lurking here I notice everyone dividing into two camps. Let me offer a
third
>> direction.
>>
>> Any function using the return value to return error codes I accept as bad
>> design. I thought we all learned this long ago. A section from "Writing
>> Solid Code" burned in my memory (but looked up, p91):
>>
>> "Don't use confusing dual purpose return values--each output should
>> represent exactly one data type. Make it hard to ignore important details
>> by making them explicit in the design."
Jim to the rescue!!! Thanks - I appreciate the reference, and I think
you have, among other suggestions, pointed out one of the fundamental
differences between Java and C - we don't return -1 (except indexOf ....
grr...) to indicate errors, as that is bad form ;-)
Does throwing an exception flly directly into this by aborting the routine
altogether? I think so. Imagine that all searching routines in the library
followed this approach.
Maybe we should have another routine that returns null if the child is not
there.
>>
>> >From this, the correct design choice is:
>> 1. So getChild() should always return a child or throw an exception. Null
>> is not a child. Exceptions are hard to ignore. null is too easy to
ignore.
How did you interpret that throwing an exception is acceptable from the
quote you provided. The way I interpret the quote is that returning an
exception is another value which adds to the argument that getChild should
return null since null is a valid value for Element. Throwing an exception
is not a good way to return a result. It should probably throw a RunTime
exception (not an Exception that should be caught) since you are implying
the precondition of the getChild is that the child must exist.
>> 2. If the program does not know if a child is present, it should, must, or
>> ought to be testing with:
>> boolean hasChild( String s );
>>
>> Alas, there is no hasChild() ?
>
>There's not, but on the strength of this email, I'm willing to put one
>in.
>
>-Brett
It would be nice if one were able to insert their own definition of Element
or Document or Attribute when building the JDom classes so it is possible
to add routines to the library that suits their needs/beliefs.
dino
More information about the jdom-interest
mailing list