Warum werfen Double.parseDouble (null) und Integer.parseInt (null) verschiedene Ausnahmen?Warum werfen Double.parseDouble (null) und Integer.parseInt (null) verschiedene Ausnahmen?
Ist dies ein historischer Unfall oder vorsätzlich? In der Dokumentation wird deutlich zwei Arten von Ausnahmen für Double.parseDouble(...)
und eine für Integer.parseInt()
, aber es scheint widersprüchlich:
Integer.parseInt(null); // throws java.lang.NumberFormatException: null
jedoch
Double.parseDouble(null); // throws java.lang.NullPointerException
@Aquillo: Es gibt 'doppelte' primitive http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html – nhahtdh
Überprüfen Sie den Quellcode der jeweiligen Methoden, es scheint nur eine Inkonsistenz. 'parseDouble' führt keine Nullprüfung durch und wirft nur eine NPE, wenn sie gefunden wird, aber in 'parseInt' wird die Eingabezeichenfolge auf' null' überprüft. Ich kann keinen guten Grund sehen, warum sie sich anders verhalten sollten. – NilsH
Ich habe überprüft, dass sie die sameNumberFormatException auslösen. – twlkyao