Estoy escribiendo un pequeño programa para mí y me encuentro con un problema.
Quiero ser capaz de escribir un número en la consola, y extraer el número de una variable. Hasta este punto lo tengo.
int aNumber = Integer.parseInt(br.readLine());
Excepto que yo quiero conseguir un error cuando hay algo entrado en la consola que no es un número.
Algo como esto, pero por supuesto que trabaja:
void Test() {
while (true) {
try {
aNumber = Integer.parseInt(br.readLine());
} catch (IOException e) {
e.printStackTrace();
}
if (aNumber >= 1) {
System.out.println("Hurray you enterd a number! It is " + aNumber + ".");
return;
} else {
System.out.println("Error: Something went wrong. Please try again.\n");
}
}
}
Si introduce un número que trabaja muy bien. Pero yo quiero ser capaz de introducir textos y conseguir un error para volver a intentarlo.
Ejemplo si escribe en la consola:
1
Responder:
Hurra que enterd un número! Es 1.
=====
2564
Responder:
Hurra que enterd un número! Es 2564.
=====
eaf123
Responder:
Error: Algo salió mal. Inténtalo de nuevo.
=====
Gracias por todo el mundo tratando de ayudar.
Lars Meeuwsen
Esto funcionará. Espero que comprendan la solución. Integer.parseInt()
lanza NumberFormatException
en caso de fallo de análisis.
void test() {
while (true) {
int aNumber;
try {
aNumber = Integer.parseInt(br.readLine());
System.out.println("Hurray you enterd a number! It is " + aNumber + ".");
return;
} catch (NumberFormatException | IOException e) {
System.out.println("Error: Something went wrong. Please try again.\n");
}
}
}