Por que Double.parseDouble (null) e Integer.parseInt (null) lançam exceções diferentes?
Este é um acidente histórico ou intencional? A documentação afirma claramente dois tipos de exceções para Double.parseDouble(...)
e uma para Integer.parseInt()
, mas parece inconsistente:
Integer.parseInt(null); // throws java.lang.NumberFormatException: null
Contudo
Double.parseDouble(null); // throws java.lang.NullPointerException
double
primitivoparseDouble
não faz uma verificação de nulo e apenas lança um NPE quando é encontrado, mas emparseInt
, a seqüência de entrada é verificadanull
. Não consigo ver nenhuma boa razão para que eles se comportem de maneira diferente.Respostas:
E:
Como retirado de: Relatório de Bug: Integer.parseInt () e Double.parseDouble () lançam diferentes exceções em null.
Como outros afirmaram: provavelmente é feito por diferentes autores.
fonte
Nota: tudo neste post está na fonte do Java7-b147
Double.parseDouble()
entra em uma biblioteca Sun (emsun.misc.FloatingDecimal
) a primeira coisa importante que acontece é:Integer.parseInt()
é feito manualmente naInteger
aula. A primeira coisa importante que acontece é:Eu acho que existem dois autores diferentes.
fonte