Java - Necesito ayuda con este tema que Manejo de Excepciones

 
Vista:
sin imagen de perfil
Val: 21
Ha disminuido su posición en 46 puestos en Java (en relación al último mes)
Gráfica de Java

Necesito ayuda con este tema que Manejo de Excepciones

Publicado por Jorge (7 intervenciones) el 24/05/2020 07:34:49
a. Crea una clase de tipo main, y has lo que se te pide a continuación.
b. Crea una variable de tipo entero, una de tipo cadena y una de tipo boolean.
c. Inserta las instrucciones de lectura de datos para cada una de esas variables
d. Ejecuta el programa, y a la variable de tipo cadena inserta un número entero, a la
de tipo entero inserta un valor booleano, y a la de booleano inserta una cadena
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-1
Responder
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Necesito ayuda con este tema que Manejo de Excepciones

Publicado por Kabuto (1381 intervenciones) el 24/05/2020 12:43:36
A ver, creo entender que piden algo así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public static void main(String[] args) {
 
    int entero = 0;
    String cadena = "";
    boolean booleano = true;
    Scanner teclado = new Scanner(System.in);
 
    System.out.print("Inserta cadena: "); //Teclearemos un entero
    cadena = teclado.nextLine();
    System.out.print("Inserta entero: "); //Teclearemos true o false
    entero = teclado.nextInt();
    System.out.print("Inserta boolean: "); //Teclearemos una cadena
    booleano = teclado.nextBoolean();
 
    teclado.close();
 
}
Si ejecutamos esto, y tecleamos los valores que piden:
-> al String le tecleamos un valor entero --> No pasará nada, porque String traga con todo y convertirá el entero tecleado en una cadena.
-> al entero le tecleamos un valor boolean(true/false) --> Se producirá excepción, porque el int no puede aceptar nada que no sea un entero
-> al booleano le tecleamos una cadena -->Se producirá excepción, porque el boolean no acepta nada que no sea "true" o "false"

Bien, estas excepciones "rompen" la ejecución del programa. El programa finaliza de forma abrupta mostrando un terrible mensaje en pantalla.
Ejemplo:
1
2
3
4
5
6
7
8
Inserta cadena: 45
Inserta entero: true
Exception in thread "main" java.util.InputMismatchException
	at java.base/java.util.Scanner.throwFor(Scanner.java:939)
	at java.base/java.util.Scanner.next(Scanner.java:1594)
	at java.base/java.util.Scanner.nextInt(Scanner.java:2258)
	at java.base/java.util.Scanner.nextInt(Scanner.java:2212)
	at manejoExcepciones.Main.main(Main.java:19)

Esto hay que evitarlo capturando y manejando excepciones con try catch

Pues inténtalo, modifica ese código añadiendo lo necesario para evitar que una excepción al introducir datos, rompa el programa.

Un saludo.
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 Sandro
Val: 392
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Necesito ayuda con este tema que Manejo de Excepciones

Publicado por Sandro (166 intervenciones) el 24/05/2020 23:49:11
o genera tus propias excepciones

1
2
3
4
5
6
7
8
try																{
			cuelquier codigo
 			throw	new	MiExcepcion				(	240											)	;
		}	catch								(	MiExcepcion
														e										)	{
			system.out.prinltln("lo que sea");
			e.printStackTrace				(												)	;
		}
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: 21
Ha disminuido su posición en 46 puestos en Java (en relación al último mes)
Gráfica de Java

Necesito ayuda con este tema que Manejo de Excepciones

Publicado por Jorge (7 intervenciones) el 26/05/2020 04:03:14
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package excepciones;
 
import java.util.InputMismatchException;
import java.util.Scanner;
 
 
public class Excepciones {
 
 
    public static void main(String[] args) {
 
        do{
 
            Scanner teclado = new Scanner(System.in);
 
            try{
 
 
                int entero = 0;
		String cadena = "";
		boolean booleano = true;
 
 
		System.out.print("Inserta cadena: "); //Teclearemos un entero
		cadena = teclado.nextLine();
 
                System.out.print("Inserta entero: "); //Teclearemos true o false
		entero = teclado.nextInt();
 
                System.out.print("Inserta boolean: "); //Teclearemos una cadena
		booleano = teclado.nextBoolean();
 
		teclado.close();
 
                break;
            } catch (InputMismatchException e){
                System.err.println("Ingresaste mal un dato, intenta de nuevo: ");
            }
 
            }while(true);
 
 
	}
}
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: 21
Ha disminuido su posición en 46 puestos en Java (en relación al último mes)
Gráfica de Java

Necesito ayuda con este tema que Manejo de Excepciones

Publicado por Jorge (7 intervenciones) el 26/05/2020 04:06:21
Necesito poner las excepciones para los números enteros, los valores boleanos y los de cadena, pero no se como eh estado viendo vídeos o ejemplo en Internet pero no tengo la menor idea de como implementarlos?
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 Lisa
Val: 172
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Necesito ayuda con este tema que Manejo de Excepciones

Publicado por Lisa (34 intervenciones) el 26/05/2020 04:41:21
Según lo que dice el enunciado 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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
 
public class Excepciones {
 
    public static String leerString(String mensaje) {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String s;
        try {
            System.out.print(mensaje);
            s = br.readLine();
        } catch (IOException ex) {
            System.out.println("Hubo un error de lectura");
            s = null;
        }
        if (s == null) {
            s = leerString(mensaje);
        }
        return s;
    }
 
    public static int leerInt(String mensaje) {
        Integer i;
        try {
            i = Integer.parseInt(leerString(mensaje));
        } catch (NumberFormatException ex) {
            System.out.println("Error de formato intente de nuevo");
            i = null;
        }
        if (i == null) {
            i = leerInt(mensaje);
        }
        return i;
    }
 
    public static boolean leerBoolean(String mensaje) {
        Boolean b;
        b = Boolean.parseBoolean(leerString(mensaje));
        return b;
    }
 
    public static void main(String[] args) {
        int entero = leerInt("Inserta cadena: ");
        String cadena = leerString("Inserta cadena: ");
        boolean booleano = leerBoolean("Inserta boolean: ");
        System.out.println("El entero es: " + entero);
        System.out.println("La cadena es: " + cadena);
        System.out.println("El boleano es: " + booleano);
    }
}

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