commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael A. Smith" <>
Subject Re: [commons]NPE or IAE?
Date Wed, 21 Aug 2002 20:42:22 GMT
On Wed, 21 Aug 2002, Ola Berg wrote:

> A quickie.
> When contributing new code directly to Commons, would you like me to
> use IllegalArgumentException for all illegal arguments to a method, or
> NullPointerException for the illegal nulls?
> This question goes out to
> 1) all Commons, since this is fresh code in Commons
> 2) io, since the particular class is in io
> 3) lang, since it works closely with lang
> Preferences, anybody?

my preference is for both.  If an argument is not valid (e.g. passing in 
a negative number when a positive is expected), throw an 
IllegalArgumentException.  If there's a null when an object is expecte,d 
throw a NullPointerException.  

> Personally, I prefer IAE, since that leaves me with only one exception
> to throw for all illegal arguments, regardless of cause. Putting the
> right value in a parameter is something you do in order to maintain
> consistency, avoiding NPE and other runtime exceptions. IMO.

But distinguishing the cause can be important.  Different exceptions for 
different exceptional conditions.  

NullPointerException - "Applications should throw instances of this
class to indicate other illegal uses of the null object."

IllegalArgumentException implies that an argument was supplied and 
illegal (different than not being supplied at all, as in a null object): 
"Thrown to indicate that a method has been passed an illegal or 
inappropriate argument."

> Second: there was a thread on coding conventions lately. I wonder if
> it would be a benefit if questions like these (such as naming
> conventions: XxxUtils/Xxxs, when to use toXxx and when to use asXxx
> etc) could be answered in a \"prefered style\" document: a non binding
> style guide that reflects the most popular styles of the committers,
> or lists the acceptable styles (sorted in order of preference maybe)?
> IIRC, XxxUtils was favored over Xxxs by the majority, but was that
> documented (elsewhere than in the mails)? In a document where the
> answer to the NPE/IAE question should go too?

the XxxUtils over Xxxs was documented for the collections component:*checkout*/jakarta-commons/collections/DEVELOPERS-GUIDE.html


To unsubscribe, e-mail:   <>
For additional commands, e-mail: <>

View raw message