Exceção ao formato numérico Exceção com "D" e "F"?
Eu encontrei um problema muito estranho no meu código. Eu tenho um conversor de temperatura simples, onde o usuário digita a temperatura em graus Celsius e, depois de pressionar "Convert", a temperatura em Fahrenheit é mostrada. Se o usuário não digitar algo válido (qualquer coisa que não seja um número ou decimal), uma caixa de diálogo de erro será exibida. Código:
btnConvert.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
String tempFahr = (String) enterDegreesC.getText();
double tempF = Double.valueOf(tempFahr);
double tempFConverted = tempF * 1.8 +32;
displayDegreesF.setText(tempFConverted + " Farenheit");
}
catch (NumberFormatException nfe) {
JOptionPane.showMessageDialog(frmTemperatureConverter, "Please Enter a Number.", "Conversion Error", JOptionPane.ERROR_MESSAGE);
}
}
});
Código bastante direto e simples e funciona bem, exceto por uma coisa.Quando digito uma combinação de um número seguido pelas letras "f" ou "d", nenhuma caixa de diálogo de erro é exibida e a temperatura em Fahrenheit é calculada usando o dígito à frente da letra. Isso só acontece com "d" e "f" (e "D" e "F") e não com qualquer outra letra. Estou perplexo com este. Por que apenas essas duas letras, quando colocadas após um dígito, fazem com que as exceções não sejam lançadas e o cálculo prossiga?