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(InputMismatchExceptione){JOptionPane.showMessageDialog(null,"Este campo aceita somente números");letra1=true;scan=newScanner(System.in);}}while(letra1==true);
Algumascorreçõesqueeufaria:// Para quê instanciar o scan várias vezes?<strong>scan=newScanner(System.in);</strong>// Por que usar um nome de variável sem sentido?// …e por que você não está usando CamelCase<strong>boolletraErrada=true;</strong>
importjava.io.PrintStream;importjava.util.Scanner;publicclassPrograma{publicstaticvoidmain(String[]args){try{Programaprograma=newPrograma();programa.executar();}catch(Throwablet){t.printStackTrace();}}privatestaticfinalScannerentrada=newScanner(System.in);privatestaticfinalPrintStreamsaida=System.out;publicvoidexecutar()throwsException{doublevm=lerVm();saida.println("VM lida: "+vm);}privatedoublelerVm(){while(true){try{saida.println(" ----------------------");saida.println(" Insira o valor de Vm: ");doublevm=Double.parseDouble(entrada.nextLine());saida.println();returnvm;}catch(Exceptione){saida.println("Este campo aceita somente números");}}}}