Dlaczego Double.parseDouble (null) i Integer.parseInt (null) wyrzucają różne wyjątki?Dlaczego Double.parseDouble (null) i Integer.parseInt (null) wyrzucają różne wyjątki?
Czy jest to wypadek historyczny czy zamierzony? Dokumentacja wyraźnie stwierdza dwa rodzaje wyjątków dla Double.parseDouble(...)
i jeden dla Integer.parseInt()
, ale wydaje się niespójna:
Integer.parseInt(null); // throws java.lang.NumberFormatException: null
Jednak
Double.parseDouble(null); // throws java.lang.NullPointerException
@Aquillo: Istnieje "podwójne" prymitywne http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html – nhahtdh
Sprawdzanie kodu źródłowego poszczególnych metod, wydaje się po prostu niespójnością. 'parseDouble' nie wykonuje sprawdzenia zerowego i po prostu wyrzuca NPE, gdy jest napotkany, ale w' parseInt', wtedy wejściowy ciąg jest sprawdzany dla 'null'. Nie widzę żadnego dobrego powodu, aby zachowywać się inaczej. – NilsH
Sprawdziłem, czy rzucają ten sam wyjątek NumberFormatException. – twlkyao