¿Por qué Double.parseDouble (nulo) e Integer.parseInt (nulo) arrojan excepciones diferentes?
¿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
double
primitiva docs.oracle.com/javase/tutorial/java/nutsandbolts/...parseDouble
no realiza una verificación nula, y solo lanza una NPE cuando se encuentra, pero enparseInt
, luego se verifica la cadena de entradanull
. No veo ninguna buena razón por la que deberían comportarse de manera diferente.Respuestas:
Y:
Tomado de: Informe de error: Integer.parseInt () y Double.parseDouble () arrojan diferentes excepciones en null.
Como han dicho otros: es probable que esté hecho por diferentes autores.
fuente
Nota: todo en esta publicación está en la fuente de Java7-b147
Double.parseDouble()
entra en una biblioteca de Sun (ensun.misc.FloatingDecimal
) lo primero que sucede es:Integer.parseInt()
se hace manualmente en laInteger
clase. Lo primero que sucede es importante:Supongo que hay dos autores diferentes.
fuente