Foros del Web » Programación para mayores de 30 ;) » Java »

Problema con try y catch

Estas en el tema de Problema con try y catch en el foro de Java en Foros del Web. Buenas, estoy empezando a codificar en JAVA y me surgio este problema. Tengo este try y catch metido dentro de un while para que en ...
  #1 (permalink)  
Antiguo 19/06/2010, 10:31
 
Fecha de Ingreso: enero-2009
Mensajes: 17
Antigüedad: 15 años, 2 meses
Puntos: 0
Problema con try y catch

Buenas, estoy empezando a codificar en JAVA y me surgio este problema.

Tengo este try y catch metido dentro de un while para que en caso de ingresar un valor incorrecto me lo pida nuevamente.

El problema es que se genera un loop que imprime constantemente "Ingrese valor numerico"

Cita:
boolean ok = false;
int edad = 0;

while (!ok) {
try {
ok = true;
System.out.println("Edad de la persona: ");
edad = input.nextInt();
} catch (Exception e) {
System.out.println("Ingrese valor numérico");
}
}
Soluciones? Sugerencias?

Gracias de antemano, saludos!!!
  #2 (permalink)  
Antiguo 20/06/2010, 19:12
Avatar de calichecal  
Fecha de Ingreso: junio-2009
Ubicación: Colombia
Mensajes: 288
Antigüedad: 14 años, 10 meses
Puntos: 12
Respuesta: Problema con try y catch

Como sugerencia te digo que evites lo mas posible las excepciones, para validar eso también podrías utilizar los códigos ASCII.
__________________
Hay una fuerza motriz más poderosa que el vapor, la electricidad y la energía atómica: la voluntad. -Einstein-
  #3 (permalink)  
Antiguo 21/06/2010, 03:21
 
Fecha de Ingreso: agosto-2009
Mensajes: 38
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: Problema con try y catch

Así lo haría yo:
Código PHP:
public void prueba () {
        
String linea "";
        
int numero 0;
        while (!
linea.equals("fin")) {
            try{
                
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
                
linea br.readLine();
                        
numero Integer.parseInt(linea);
                
System.out.println (numero); // Imprime la linea que escribes (es un eco)
                
            
}
            catch(
NumberFormatException e){
                        
linea linea.toLowerCase(); // pasa a minusculas por si escribes "FIN" por ejemplo
                
if (!linea.equals("fin")){
                    
System.out.println ("Ingrese un valor numérico");
                }
            }
            catch (
IOException iOE) {
                
iOE.printStackTrace();
            }
        }
    } 

Última edición por albertito87; 21/06/2010 a las 04:34
  #4 (permalink)  
Antiguo 21/06/2010, 04:52
 
Fecha de Ingreso: febrero-2010
Mensajes: 128
Antigüedad: 14 años, 1 mes
Puntos: 3
Respuesta: Problema con try y catch

Como comentaban al inicio, no es recomendable utilizar escepciones para comprobar si algo es como queremos que sea. Una excepción es para algo más serio.

el orden de utilización es:
Código:
try{

PROGRAMA

}
catch(Exception ex){
ex.printStackTrace();
}
  #5 (permalink)  
Antiguo 21/06/2010, 05:39
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: Problema con try y catch

Para comprobar si un numero introducido por el usuario es un numero, las excepciones son la forma normal de tratarlo ya que se supone que introducirá un número y que un errror es algo excepcional.

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.

Etiquetas: catch
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:32.