为什么会出现不同的例外情况?

Aji*_*bey 6 java

我使用以下代码.第一行是给予java.lang.NumberFormatException,第二行是给予java.lang.NullPointerException.我无法弄清楚原因.

int intValue =Integer.parseInt(null);
Double double1 = Double.parseDouble(null);
Run Code Online (Sandbox Code Playgroud)

gow*_*ham 11

因为这是如何实现的,

int intValue =Integer.parseInt(null);
Run Code Online (Sandbox Code Playgroud)

如果我们查看parseInt实现,NumberFormatException如果输入字符串是,则抛出它们null

在此输入图像描述

Double double1 = Double.parseDouble(null);

parseDouble(String s)方法中有另一个方法调用,即FloatingDecimal.readJavaFormatString(s).doubleValue();
In readJavaFormatString(s)方法是完全NullPointerException抛出的地方

在此输入图像描述

FloatingDecimal.readJavaFormatString(s) 方法

在此输入图像描述

  • 它也记录了这种方式:[parseDouble](http://docs.oracle.com/javase/7/docs/api/java/lang/Double.html#parseDouble%28java.lang.String%29)和[parseInt] (http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html#parseInt%28java.lang.String%29). (2认同)