Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: drate en 25 de Junio 2023, 13:47

Título: Excepciones
Publicado por: drate en 25 de Junio 2023, 13:47
Buenas tardes.
Estoy haciendo (intentando más bien) un pequeño programa que lee un double de entrada que tiene que comprobar si es positivo tratando la excepción de manera que el programa no se detenga y permita nuevamente introducir el dato. Trato la excepción pero no sé como  conseguir que siga leyendo hasta la introducción del dato correctamente. Me podéis echar una mano? Muchas gracias. Un saludo.
Título: Re: Excepciones
Publicado por: Kabuto en 25 de Junio 2023, 19:31
Has de usar un bucle y ayudarte de un boolean de manera que finalice el bucle solo si la lectura no ha provocado ninguna excepción.

Podría hacerse así, por ejemplo:
Código: [Seleccionar]
public class PedirDouble {

private static Scanner teclado = new Scanner(System.in);

public static void main(String[] args) {

double dato = 0;
boolean esValido = false;

while(!esValido) {
try {
dato = pedirDoublePositivo();
//Si la línea anterior no ha lanzado excepción, es que es un dato válido
esValido = true; //Ponemos fin al bucle
}
catch(Exception ex) {
System.out.println("ERROR. Dato invalido:\n" + ex.getMessage());
}
}

System.out.println("\nValor introducido: " + dato);
System.out.println("\n\t\tFIN DE PROGRAMA");

}

private static double pedirDoublePositivo() throws Exception {

System.out.print("\nIntroduzca un valor double positivo: ");
double valor = Double.parseDouble(teclado.nextLine());

if (valor < 0)
throw new Exception("El valor " + valor + " no es positivo.");
else
return valor;
}

}
Título: Re: Excepciones
Publicado por: drate en 02 de Julio 2023, 12:06
Buenos días.
Estoy arreglando el código según tus indicaciones y me da fallo en el método cadenaEsValida.

En concreto en la comparación   if (car >= &#39;0&#39; && car <= &#39;9&#39;). No entiendo esa codificación. Me lo puedes aclarar?
Muchas gracias. Un saludo.

Título: Re: Excepciones
Publicado por: Kabuto en 02 de Julio 2023, 12:36
Hola.
Que raro, supongo que te ha aparecido esa codificación por alguna diferencia entre el juego de caracteres de nuestros navegadores, ya que no es eso lo que yo escribí.

Te pego una captura de lo que realmente había publicado yo:
(https://i.ibb.co/TRD9Gzj/imagen-2023-07-02-123309046.png) (https://ibb.co/5vXb3qp)