java - org - ¿Por qué Double.parseDouble(null) y Integer.parseInt(null) arrojan diferentes excepciones?
java.lang.numberformatexception: null solucion (2)
Es razonable esperar las mismas excepciones para nulo; sin embargo, estas api son muy antiguas y es posible que no se puedan cambiar en este punto.
Y:
Dado que el comportamiento de excepción es de larga data y se especifica en JavaDoc, no es práctico cambiar el comportamiento de ninguno de los métodos en este momento. Cerrando como no se arregla.
Según lo tomado de: Informe de errores: Integer.parseInt () y Double.parseDouble () arrojan diferentes excepciones en null.
Al igual que otros han declarado: Es probable que lo hagan diferentes autores.
¿Por qué Double.parseDouble (null) y Integer.parseInt (null) arrojan diferentes excepciones?
¿Es esto un accidente histórico o intencional? La documentación establece claramente dos tipos de excepciones para Double.parseDouble(...)
y una para Integer.parseInt()
, pero parece inconsistente:
Integer.parseInt(null); // throws java.lang.NumberFormatException: null
sin embargo
Double.parseDouble(null); // throws java.lang.NullPointerException
Nota: todo en esta publicación está en la fuente de Java7-b147
Double.parseDouble()
va a una biblioteca de Sun (en sun.misc.FloatingDecimal
) lo primero que sucede es:
in = in.trim(); // don''t fool around with white space.
// throws NullPointerException if null
Integer.parseInt()
se realiza manualmente en la clase Integer
. Lo primero que sucede es:
if (s == null) {
throw new NumberFormatException("null");
}
Supongo que hay dos autores diferentes.