Why do Double.parseDouble(null) and Integer.parseInt(null) throw different exceptions? Why do Double.parseDouble(null) and Integer.parseInt(null) throw different exceptions? java java

Why do Double.parseDouble(null) and Integer.parseInt(null) throw different exceptions?


It is reasonable to expect the same exceptions to be thrown for null; however, these api's are very old and may not be able to be changed at this point.

And:

Since the exception behavior is long-standing and specified in the JavaDoc, it is impractical to change either method's behavior at this time. Closing as will not fix.

As taken from: Bug Report: Integer.parseInt() and Double.parseDouble() throw different exceptions on null.

Like others have stated: It's likely made by different authors.


Note: everything in this post is in the source of Java7-b147

Double.parseDouble() goes into a Sun library (in sun.misc.FloatingDecimal) the first important thing that happens is:

in = in.trim(); // don't fool around with white space.                // throws NullPointerException if null

Integer.parseInt() is done manually in the Integer class. The first important thing that happens is:

if (s == null) {    throw new NumberFormatException("null");}

I would guess there are two different authors.