Erro no Java com Try , catch como solucionar?

1 resposta
java
tiglinux

package Exercicios_Sala;

import javax.swing.;
import java.lang.
;

public class Programa4 {

public static void main(String args[]) {
    double valor_produto;
    int codigo;
    double produto_comdesconto;

    valor_produto = Double.parseDouble(JOptionPane.showInputDialog("Digite o valor do produto:"));
    codigo = Integer.parseInt(JOptionPane.showInputDialog("DIGITE O CODIGO \n \n 1 --> 5% desconto\n 2 --> 10% desconto \n 3--> 20%desconto \n 4--> 50% desconto \n"));

    try {
        switch (codigo) {
            case 1:
                produto_comdesconto = valor_produto - (valor_produto * 0.05);
                JOptionPane.showMessageDialog(null, "O Valor do produto com desconto é : R$" + String.valueOf(produto_comdesconto));
                break;
            case 2:
                produto_comdesconto = valor_produto - (valor_produto * 0.10);
                JOptionPane.showMessageDialog(null, "O Valor do produto com desconto é : R$" + String.valueOf(produto_comdesconto));
                break;
            case 3:
                produto_comdesconto = valor_produto - (valor_produto * 0.20);
                JOptionPane.showMessageDialog(null, "O Valor do produto com desconto é : R$" + String.valueOf(produto_comdesconto));
                break;
            case 4:
                produto_comdesconto = valor_produto - (valor_produto * 0.5);
                JOptionPane.showMessageDialog(null, "O Valor do produto com desconto é : R$" + String.valueOf(produto_comdesconto));
                break;
            default:
                JOptionPane.showMessageDialog(null, "Codigo inválido!");
                break;
        }

    } catch (NumberFormatException erro) {
        JOptionPane.showMessageDialog(null, "Houve erro na conversão , digite numeros apenas!"+erro.toString(),
                "Erro",JOptionPane.ERROR_MESSAGE);
        
        
    }
    System.exit(0);
}

}

ERRO : Exception in thread “main” java.lang.NumberFormatException: For input string: “AB”
** at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)**
** at java.lang.Integer.parseInt(Integer.java:580)**
** at java.lang.Integer.parseInt(Integer.java:615)**
** at Exercicios_Sala.Programa4.main(Programa4.java:14)**

me ajudem galera…

1 Resposta

TerraSkilll

O que você digitou nos JOptionPane? Se digitou letras (“AB”, por exemplo), vai dar erro mesmo.

Se a sua ideia era tratar a digitação com o try catch, coloque as duas chamadas a JOptionPane dentro do bloco do try:

try {
 valor_produto = Double.parseDouble(JOptionPane.showInputDialog("Digite o valor do produto:"));
 codigo = Integer.parseInt(JOptionPane.showInputDialog("DIGITE O CODIGO \n \n 1 --> 5% desconto\n 2 --> 10% desconto \n 3--> 20%desconto \n 4--> 50% desconto \n"));

// ... resto do código

} catch (NumberFormatException erro) {
    JOptionPane.showMessageDialog(null, "Houve erro na conversão , digite numeros apenas!"+erro.toString(),
            "Erro",JOptionPane.ERROR_MESSAGE);
}

Abraço.

Criado 17 de março de 2016
Ultima resposta 17 de mar. de 2016
Respostas 1
Participantes 2