commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Steven Caswell" <ste...@caswell.name>
Subject RE: [commons]NPE or IAE?
Date Wed, 21 Aug 2002 20:48:11 GMT
I tend to agree with Michael's observations about using different
exceptions. It has been my experience is that using different exceptions
to indicate different conditions is preferred (and IMHO these are
different conditions).  This presents the most flexibility to the
caller.


Steven Caswell
steven@caswell.name
a.k.a Mungo Knotwise of Michel Delving
"One ring to rule them all, one ring to find them..."


> -----Original Message-----
> From: Michael A. Smith [mailto:mas@apache.org] 
> Sent: Wednesday, August 21, 2002 3:42 PM
> To: Jakarta Commons Developers List; Ola Berg
> Subject: Re: [commons]NPE or IAE?
> 
> 
> 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:
> 
http://cvs.apache.org/viewcvs/*checkout*/jakarta-commons/collections/DEV
ELOPERS-GUIDE.html

regards,
michael



--
To unsubscribe, e-mail:
<mailto:commons-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail:
<mailto:commons-dev-help@jakarta.apache.org>




--
To unsubscribe, e-mail:   <mailto:commons-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:commons-dev-help@jakarta.apache.org>


Mime
View raw message