Java - repetir try-catch

 
Vista:
Imágen de perfil de Juan José
Val: 54
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

repetir try-catch

Publicado por Juan José (20 intervenciones) el 12/12/2018 02:20:53
try-catch

Buenas, noches, de codigo pienso que el try-catch esté dentro de un bucle, yo he pensado en el while, pero se hace infinito o cuando cambio me muestra "Incorrecto...." y acaba el programa, ¿una ayuda?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Juan José
Val: 54
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

repetir try-catch

Publicado por Juan José (20 intervenciones) el 12/12/2018 15:15:58
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
int num1 = 0, num2 = 0;
boolean cacatua = false;
System.out.print("Introduzca dos valores: ");
do {
try {
num1 = entrada.nextInt();
num2 = entrada.nextInt();
cacatua = true;
} catch (Exception e) {
System.out.println("Incorrecto, introduzca dos valores: ");
cacatua = false;
}
} while (cacatua == false);
{
System.out.println("La suma es " + (num1 + num2));
entrada.close();
}

}



Cuando falla el catch se vuelve infinito y no sale. un break no se le puede poner y el continue hace que el catch hará lo mismo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 358
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

repetir try-catch

Publicado por Nicolas (137 intervenciones) el 12/12/2018 15:19:46
Hola Juan José.
Tienes algún fragmento del código que estás implementando para esa solución??
Muéstralo y te ayudamos con el error.

Un ejemplo algo así:
boolean val = true;
Scanner scan = new Scanner(System.in);

while (val) {
try {
int numero = 0;
System.out.println("\n Ingrese un numero :");
String num = scan.next();

try {
numero = Integer.parseInt(num);

} catch (NumberFormatException excepcion) {
numero = 0;
}

System.out.println("\n El numero ingresado es: " + numero);
} catch (Exception e) {
System.out.println("Error :" + e.getMessage());
}

}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 358
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

repetir try-catch

Publicado por Nicolas (137 intervenciones) el 12/12/2018 15:25:48
Si necesitas que tus datos los sume algo así:

Scanner entrada = new Scanner(System.in);
int num1 = 0, num2 = 0;
boolean cacatua = false;

do {
try {
System.out.print("Introduzca dos valores: ");
num1 = entrada.nextInt();
num2 = entrada.nextInt();
cacatua = true;
} catch (Exception e) {
System.out.println("Incorrecto, introduzca dos valores: ");
cacatua = false;
}
} while (cacatua );

System.out.println("La suma es " + (num1 + num2));
entrada.close();
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

repetir try-catch

Publicado por Billy Joel (876 intervenciones) el 12/12/2018 16:54:13
Para resolver esto yo utilizo sobreescritura y recursividad; Y lo resuelvo así:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
 
public class RepeticionTryCatch{
 
    public static int leer2Enteros(String mensaje) {
        return leer2Enteros(mensaje, "");
    }
 
    public static int leer2Enteros(String mensaje, String error) {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int suma;
        try {
            System.out.print(error + mensaje);
            String numeros = br.readLine();
            String[] n = numeros.split(" ");
            suma = Integer.parseInt(n[0]) + Integer.parseInt(n[1]);
        } catch (IOException | NumberFormatException ex) {
            suma = leer2Enteros(mensaje.toLowerCase(), "Incorrecto, ");
        }
        return suma;
    }
 
    public static void main(String[] args) throws IOException {
        int a = leer2Enteros("Introduce dos valores enteros: ");
        System.out.println("La suma es: " + a);
    }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar