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.
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.");
}
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).