Amigos laneros estoy aprendidendo a manejar excepciones, cuando capturo una excepcion que haria como por ejemplo captudar el dato deseado?
public void agregarForma(){
Scanner in = new Scanner ( System.in );
float var1;
float var2;
String tipoFigura;
System.out.println("Digite el tipo de Figura");
tipoFigura=in.nextLine();
if("Circulo".equals(tipoFigura)){
try{
System.out.println("Digite el valor del radio");
var1=in.nextFloat();
}catch(InputMismatchException excepcion){
System.out.println("Error: el valor no es el indicado");
//Que mas iria aca? para captudar el dato sin que se reviente
}
figuras.add(new Circulo(atributos.devolverID(),tipoFigura,var1));
atributos.incrementarID()
gracias;
Bueno, le metí mano a tu código para que valide en un método aparte....
import java.util.Scanner;
public class prueba
{
public static void agregarForma(){
Scanner in = new Scanner ( System.in );
float radio;
String tipoFigura;
System.out.println("Digite el tipo de Figura");
tipoFigura=in.nextLine();
if("Circulo".equals(tipoFigura)){
String radiostr; boolean valido =false;
do
{
System.out.println("Digite el valor del radio");
radiostr = in.nextLine();
valido=validarFloat(radiostr);
if(!valido) System.out.println("Valor invalido");
}
while(!valido) ;
radio= Float.parseFloat(radiostr);
}
System.out.println("Valido... ahora use el valor para lo que quiera");
//.add(new Circulo(atributos.devolverID(),tipoFigura,var1));
//atributos.incrementarID()
}
public static void main(String[] args)
{
agregarForma();
}
public static boolean validarFloat(String entrada)
{
try
{
Float.parseFloat(entrada);
}
catch (Exception e)
{
return false;
}
return true;
}
}
El método validarFloat retorna true si el string que recibe como parámetro es valido como un float (por ejemplo saca false si le mandas letras). Por otra parte, el programa debería preguntar varias veces el radio hasta que sea correcto el valor, razón por la cual le puse un ciclo ...
Espero te sirva
Sent from my VPCSB45FL using Tapatalk