Warum lösen Double.parseDouble (null) und Integer.parseInt (null) unterschiedliche Ausnahmen aus?
Ist das ein historischer Unfall oder beabsichtigt? In der Dokumentation werden eindeutig zwei Arten von Ausnahmen für Double.parseDouble(...)
und eine für angegeben Integer.parseInt()
, aber es scheint inkonsistent:
Integer.parseInt(null); // throws java.lang.NumberFormatException: null
jedoch
Double.parseDouble(null); // throws java.lang.NullPointerException
double
primitive docs.oracle.com/javase/tutorial/java/nutsandbolts/…parseDouble
führt keine Nullprüfung durch und löst nur eine NPE aus, wenn sie angetroffen wird, aber inparseInt
, dann wird die Eingabezeichenfolge überprüftnull
. Ich kann keinen guten Grund sehen, warum sie sich anders verhalten sollten.Antworten:
Und:
Wie aus: Bug Report: Integer.parseInt () und Double.parseDouble () werfen unterschiedliche Ausnahmen auf null.
Wie andere gesagt haben: Es wird wahrscheinlich von verschiedenen Autoren gemacht.
quelle
Hinweis: Alles in diesem Beitrag befindet sich in der Quelle von Java7-b147
Double.parseDouble()
geht in eine Sun-Bibliothek (insun.misc.FloatingDecimal
) das erste wichtige, was passiert, ist:Integer.parseInt()
erfolgt manuell in derInteger
Klasse. Das erste wichtige, was passiert, ist:Ich würde vermuten, dass es zwei verschiedene Autoren gibt.
quelle