Re: NullPointerException, IllegalArgumentException, or AssertionError
for null constructor argument
tzvika.barenholz@gmail.com wrote:
On Dec 29, 12:11 am, Daniel Pitts
<newsgroup.spamfil...@virtualinfinity.net> wrote:
I have a constructor that takes a String argument. I'd like to throw an
exception if the constructor is invoked with a null argument, but I'm
not sure which instruction I should use.
NullPointerException is technically accurate, since it is a null
pointer, but it is also an IllegalArgumentException. I think that
IllegalArgumentException is more specific, so I'll probably go with
that, but wanted opinions.
The third option is AssertionError. I could just use assert arg!=null,
and that could be enough. This is for a personal project, so it doesn't
*really* matter, but at the same time its good practice for me to
think about these sort of things :-)
Thoughts?
Thanks,
Daniel.
--
Daniel Pitts' Tech Blog: <http://virtualinfinity.net/wordpress/>
I vote NPE. It's more specific, and basically it's what it's there
fore. IAE could mean any number of things.
IAE means that an argument was invalid, and the Javadoc comments should
give the rules.
Even if the Javadocs indicate that NPE can be caused by a null argument,
short of reading the code, the caller has no way of knowing if the NPE
is due to that, or due to some other problem in the called code. There
are far too many things that cause NPE.
If you are worried about explaining what was wrong with the argument,
you could report the NPE as cause on the IAE. In any case, the message
should be clear.
Patricia