Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/02/2015, 12:53
marodal
 
Fecha de Ingreso: noviembre-2008
Ubicación: Sevilla
Mensajes: 157
Antigüedad: 15 años, 5 meses
Puntos: 2
Clase Scanner problema excepciones

Hola a todos,

Estoy haciendo un programita de consola que pide unos datos por teclado usando la clase java.util.Scanner. El programa necesita un entero, para calcular el cuadrado. Estoy capturando lo que se ha introducido por teclado mediante el metodo nextInt(), y quiero controlar la excepción cuando el usuario introduce algo que no es un entero, usando un bucle que me fuerce a realizar otra lectura.
Este es mi codigo:

Código:
Scanner sc = new Scanner(System.in);
       
       int numero = 0;
       boolean error = true;
       while(error){
        try{
           
               System.out.println("Introduce un numero: ");
               numero = sc.nextInt();
               error = false;
           
        }catch(InputMismatchException ex){
           System.out.println("Formato de numero equivocado");
        }
        
       }
        System.out.println("El cuadrado del numero "+numero+" es: "+Math.pow(numero, 2));
El programa funciona bien cuando introduzco un entero por teclado, pero cuando introduzco un string, entro en un bucle infinito, el programa no vuelve a esperar que introduzca algo por teclado, sino que se lanza infinitamente la excepcion InputMismatchException.

¿Cual sería la solución para conseguir el comportamiento que estoy buscando?

Gracias de antemano y un saludo