Imprimir na tela

4 respostas
java
R

Bom dia pessoal, abaixo eu coloquei um código, gostaria de saber se existe algum jeito de toda vez a excessão captar um erro nao imprimir e fica a mesma opção na tela?

do {
		try {
	System.out.println("   ----------------------");	
	System.out.println("   Insira o valor de Vm: ");
    vm = scan.nextDouble();
	System.out.println(" ");
	letra1 = false;
	}catch (InputMismatchException e) {
		JOptionPane.showMessageDialog(null, "Este campo aceita somente números");
		letra1 = true;
		scan = new Scanner(System.in);	
	}
}while(letra1 == true );

Obrigado
Atenciosamente

4 Respostas

fventurajr
Algumas correções que eu faria:

// Para quê instanciar o scan várias vezes?

<strong>scan = new Scanner(System.in);</strong>	

// Por que usar um nome de variável sem sentido?

// …e por que você não está usando CamelCase

<strong>bool letraErrada = true;</strong>
do {

     try {

          System.out.println("   ----------------------");	

          System.out.println("   Insira o valor de Vm: );

          vm = scan.nextDouble();

          System.out.println(” ");

          letraErrada = false;

     }

     catch (InputMismatchException e) {

          JOptionPane.showMessageDialog(null,

                                                            “Este campo aceita somente números”);

          letraErrada = true;

     }

}while( letraErrada );eMAI
staroski

N maneiras de se fazer.

import java.io.PrintStream;
import java.util.Scanner;

public class Programa {

    public static void main(String[] args) {
        try {
            Programa programa = new Programa();
            programa.executar();
        } catch (Throwable t) {
            t.printStackTrace();
        }
    }

    private static final Scanner entrada = new Scanner(System.in);
    private static final PrintStream saida = System.out;

    public void executar() throws Exception {
        double vm = lerVm();
        saida.println("VM lida: " + vm);
    }

    private double lerVm() {
        while (true) {
            try {
                saida.println("   ----------------------");
                saida.println("   Insira o valor de Vm: ");
                double vm = Double.parseDouble(entrada.nextLine());
                saida.println();
                return vm;
            } catch (Exception e) {
                saida.println("Este campo aceita somente números");
            }
        }
    }
}
R

Obrigado @fventurajr

R

obrigado @staroski

Criado 22 de novembro de 2019
Ultima resposta 22 de nov. de 2019
Respostas 4
Participantes 3