Java - Control de errores por teclado

 
Vista:
sin imagen de perfil
Val: 17
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

Control de errores por teclado

Publicado por al (6 intervenciones) el 05/12/2020 22:56:13
Buenas gente, necesito ayuda con estos dos ejercicios.. no los entiendo bien, no sé como resolverlos. Gracias!


1_Realiza una función que pida un int por pantalla, controle que no haya ningún error, y devuelva al programa principal,el main, el int.

2_Realiza una función que pida un float por pantalla, controle que no haya ningún error, y devuelva al programa principal el main, el float.
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 Kabuto
Val: 2.995
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Control de errores por teclado

Publicado por Kabuto (782 intervenciones) el 07/12/2020 00:05:03
Hola
Se pueden controlar excepciones (que técnicamente NO son errores) con try catch, en este caso, queremos controlar que ocurre cuando pedimos un valor numérico por teclado, pero nos dan algo que no sirve como número, por ejemplo una letra o una palabra.

Si no controlamos la excepción, el programa no sabrá que hacer y finalizará de forma abrupta.

Capturando la excepción con try catch, podemos decirle al programa cómo debe actuar ante esa situación y así seguirá funcionando.

Te pongo un ejemplo controlando qué hacer cuando se pide un int.
El método avisa de que no se ha introducido lo que se pide e insiste, hasta que se le proporcione un int.
Míralo y replícalo para pedir un float, que prácticamente será el mismo código.

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
public class ControlErrores {
 
	public static void main(String[] args) {
 
		int entero = pedirEntero();
		System.out.println("\nSe ha introducido el: " + entero);
 
	}
 
	/**
	 * Pide un valor int y lo retorna.
	 * Si no se introduce un dato válido que sirva como int,
	 * repetirá la petición hasta que se le de un dato correcto.
	 * @return Valor int validado por teclado.
	 */
	public static int pedirEntero(){
		Scanner teclado = new Scanner(System.in);
		int entero = 0;
		boolean valido = false;
 
 
		while (!valido) {
			System.out.print("Teclea un entero: ");
			try {
				entero = teclado.nextInt();
				valido = true;
			} catch(Exception e) {
				System.out.println("No ha tecleado un entero...\n");
				teclado.nextLine(); //Eliminamos del Scanner los datos no aceptados
			}
		}
 
		teclado.close();
		return entero;
	}
 
}
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