Exceção ao passar vazio para double

4 respostas
M
try{
                int b = Integer.parseInt(getNroVezesSolic());
            }
            catch( NumberFormatException e){
                campoError = "Número de vezes inválido!";
            }


            try{
                double c = Double.parseDouble(getValorSolic());            
            }
            catch( NumberFormatException e){
                campoError = "Valor solicitado é inválido!";

Se passar vazio na página, no primeiro try(str to int) irá cair no catch, no segundo não(str to double).

Pq?

4 Respostas

D

vc fechou o catch?

}

M

Sim, se não nem compilaria.

T

Quando você passa null para Double.parseDouble, o resultado é uma NullPointerException, não uma NumberFormatException.

class TesteVazio {
    /**
     * Este programa imprime:
<pre>     
Catch 1
Catch 2a
Catch 3
Catch 4
</pre>
(Testado em JDK 1.3, 1.4, 5.0, 6.0 da Sun, e efetuando as modificações necessárias,
em JDK 1.1 da Microsoft).
     */
    public static void main(String[] args) {
        String teste;
        
        teste = null;
        try {
            Integer.parseInt (teste);
        } catch (NumberFormatException ex) {
            System.out.println ("Catch 1"); 
        } catch (NullPointerException ex) {
            System.out.println ("Catch 1a");
        }
        try {
            Double.parseDouble (teste);
// Para JDK1.1 troque por: Double.valueOf (teste).doubleValue();
        } catch (NumberFormatException ex) {
            System.out.println ("Catch 2");
        } catch (NullPointerException ex) {
            System.out.println ("Catch 2a"); //
        }
        teste = "";
        try {
            Integer.parseInt (teste);
        } catch (NumberFormatException ex) {
            System.out.println ("Catch 3");
        }
        try {
            Double.parseDouble (teste);
// Para JDK1.1 troque por: Double.valueOf (teste).doubleValue();
        } catch (NumberFormatException ex) {
            System.out.println ("Catch 4");
        }
    }
}
M

Estou usando a jdk 5.0

Agora sim, na conversão do String para double deixei o catch do NumberFormatException e do NullPointerException e funcionou!

Obrigado!

Criado 20 de abril de 2006
Ultima resposta 20 de abr. de 2006
Respostas 4
Participantes 3