[Resolvido]Problemas com a exceção do parce int

3 respostas Resolvido
rafaelarbl
String stridade = spinneridade.getValue().toString();
int idade;
try {
	idade = Integer.parseInt(stridade);
	if (idade < 10 || idade > 120) {
	   JOptionPane.showMessageDialog(btnEnviar, "Idade deve ser maior do que 10 e menor do que 120.");
	   idade = 0;
	}
} catch (NumberFormatException e) {
	JOptionPane.showMessageDialog(btnEnviar, "Idade deve ser um número.");
}

Problema:

Se no meu spinner ao invés de por um número eu escrever “melancia” o JOptionPane de mensagem “Idade deve ser um número” não aparece.

3 Respostas

igomes
Solucao aceita

Serio que a mensagem não aparece com esse valor ???

String stridade = "melancia";
int idade;
try {
        idade = Integer.parseInt(stridade);
        if (idade < 10 || idade > 120) {
            JOptionPane.showMessageDialog(null, "Idade deve ser maior do que 10 e menor do que 120.");
            idade = 0;
       }
} catch (NumberFormatException e) {
        JOptionPane.showMessageDialog(null, "Idade deve ser um número.");
}
rafaelarbl

Sério ué… tu testou ?

Mas acho que já descobri por que. É que como ele dá um throws dentro do método parseInt de certo o meu catch não pega a exceção. Sei lá né. Talvez. Mas não importa, por que “quando o throws pega a exceção” (se é que ele pega) de alguma forma alguma coisa seta ela igual a 0. E como o meu primeiro if trata as idades iguais a 0 eu vou acabar não tendo problemas. Mesmo que eu não consiga dar mensagens de erro personalizadas como eu queria.

Também estranhei mas enfim. Deixei assim mesmo. (Se souber resolver me diz que eu arrumo).

rafaelarbl

Ah tá entendi. Testei sem dar o spinneridade.getValue().toString();
dando direto String stridade = “melancia”; e deu o erro certinho.

De certo o problema é que o spinner não consegue pegar valores diferentes de números ou sei lá.

Criado 3 de agosto de 2016
Ultima resposta 3 de ago. de 2016
Respostas 3
Participantes 2