【发布时间】:2013-04-25 20:17:26
【问题描述】:
为什么 Double.parseDouble(null) 和 Integer.parseInt(null) 会抛出不同的异常?
这是历史意外还是故意的?文档清楚地说明了Double.parseDouble(...) 的两种例外情况和Integer.parseInt() 的一种例外情况,但似乎不一致:
Integer.parseInt(null); // throws java.lang.NumberFormatException: null
然而
Double.parseDouble(null); // throws java.lang.NullPointerException
【问题讨论】:
-
@Aquillo:有
double原语docs.oracle.com/javase/tutorial/java/nutsandbolts/… -
查看各个方法的源代码,似乎只是不一致。
parseDouble不做空检查,遇到时只是抛出 NPE,但在parseInt中,则检查输入字符串是否为null。我看不出他们应该表现不同的任何充分理由。 -
我检查过它们是否抛出了相同的NumberFormatException。
标签: java exception nullpointerexception numberformatexception