You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by "Sean C. Sullivan" <se...@seansullivan.com> on 2002/02/10 22:46:51 UTC
[httpclient] parameter validation, NullPointerException vs IllegalArgumentException
From: "dIon Gillard" <di...@multitask.com.au>
>
> Sean C. Sullivan wrote:
>
> >NameValuePair.java
> >
> >--------------------------
> >
> > /**
> > * Constructor.
> > */
> > public NameValuePair(String name, String value) {
> >
> > this.name = name;
> > this.value = value;
> >
> > }
> >
> >--------------------------
> >
> >With this constructor, it is allowable for a caller to do this:
> >
> > NameValuePair nvp = new NameValuePair(null, null);
> >
> >I would prefer if the NameValuePair constructor did not allow null
parameters.
> >
> >I prefer this constructor:
> >
> > /**
> > * Constructor.
> > */
> > public NameValuePair(String name, String value) {
> >
> > if (null == name) {
> > throw new NullPointerException("name parameter is null");
> > }
> > if (null == value) {
> > throw new NullPointerException("value parameter is null");
> > }
> >
> > this.name = name;
> > this.value = value;
> >
> > }
> >
> >
> Again,
>
> my call would be if these are illegal arguments, it should throw
> IllegalArgumentException, not NullPointerException.
In the core Java packages (java.*), Sun throws a NullPointerException
when a null parameter is unexpectedly detected:
Example: java/io/File.java
////////////////////
public File(String pathname) {
if (pathname == null) {
throw new NullPointerException();
}
/// .... etc .....
}
//////////
Also, Josh Bloch recommends throwing a NullPointerException
when a parameter is unexpectedly null ( "Item 23: Check Parameters for
Validity", [1], pages 120-121 ).
-Sean
[1] Effective Java Programming Language Guide by Josh Bloch
http://www.amazon.com/exec/obidos/ASIN/0201310058/
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>