Fair enough C# is nicer in that it has a NullReferenceException, ArgumentNullException and ArgumentException
Rob On 7/31/13 2:48 PM, "Stephen Allen" <[email protected]> wrote: >The Java documentation is rather lacking in this area. But I *think* the >standard in Java is to throw NPE, even though it seems a little >counter-intuitive. I base this off of recent experience using Guava a lot >for precondition checking, and it favors NPE [1], and also Effective Java >[2] which also says to use NPE. > >-Stephen > >[1] https://code.google.com/p/guava-libraries/wiki/PreconditionsExplained >[2] Effective Java 2nd Edition, Item 60: "Arguably, all erroneous method >invocations boil down to an illegal argument or illegal state, but other >exceptions are standardly used for certain kinds of illegal arguments and >states. If a caller passes null in some parameter for which null values >are >prohibited, convention dictates that NullPointerException be thrown rather >than IllegalArgumentException. Similarly, if a caller passes an >out-of-range value in a parameter representing an index into a sequence, >IndexOutOfBoundsException should be thrown rather than >IllegalArgumentException." > > >On Wed, Jul 31, 2013 at 5:27 PM, Rob Vesse <[email protected]> wrote: > >> Isn't IllegalArgumentException actually more appropriate here? >> >> There's a difference between a NPE which is typically something that >> shouldn't have been null being null and an IAE which is used for when >> arguments don't meet the contract of the API which was the case here. >> >> Rob >> >> >> On 7/31/13 2:23 PM, "[email protected]" <[email protected]> wrote: >> >> >Author: sallen >> >Date: Wed Jul 31 21:23:52 2013 >> >New Revision: 1509038 >> > >> >URL: http://svn.apache.org/r1509038 >> >Log: >> >Replace incorrect IllegalArgumentException with a NullPointerException >> > >> >Modified: >> > >> >>>jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/modify/request/ >>>Up >> >dateWriter.java >> > >> >Modified: >> >>>jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/modify/request/ >>>Up >> >dateWriter.java >> >URL: >> > >> >>http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl >>/ >> >>>jena/sparql/modify/request/UpdateWriter.java?rev=1509038&r1=1509037&r2=1 >>>50 >> >9038&view=diff >> >>>======================================================================== >>>== >> >==== >> >--- >> >>>jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/modify/request/ >>>Up >> >dateWriter.java (original) >> >+++ >> >>>jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/modify/request/ >>>Up >> >dateWriter.java Wed Jul 31 21:23:52 2013 >> >@@ -58,7 +58,7 @@ public class UpdateWriter implements Clo >> > public UpdateWriter(IndentedWriter out, SerializationContext sCxt) >> > { >> > if (out == null) >> >- throw new IllegalArgumentException("out may not be null") >>; >> >+ throw new NullPointerException("out") ; >> > >> > // To get legal syntax out, the serialization context >> > // has to be a bNode mapping that does ??N vars to bNodes >> > >> > >> >>
