Once an exception is caught in this code, the menuSystem
method is run, but once I go to input a number the programme closes and the "Build is successful" message is displayed. Is there any way to get back into the while loop once an exception has occured?
public static void main(String[] args) {
final UnitResults myUnit = new UnitResults(10, "Java");
int option = menuSystem();
try {
while (option != 0) {
final Scanner keyb = new Scanner(System.in);
System.out.println("");
switch (option) {
}
}
} catch (Exception InputMismachException) {
System.out.println("\nPlease Enter a Valid Number\n");
option = menuSystem();
}
}
put your try/catch inside your while loop:
while (option != 0) {
final Scanner keyb = new Scanner(System.in);
System.out.println("");
try {
switch (option) {
}
} catch (Exception InputMismachException) {
System.out.println("\nPlease Enter a Valid Number\n");
option = menuSystem();
}
}
Put the try
and catch
within the while
loop. If the code is using nextInt()
then you need to skip the invalid input as it will not be consumed in the event of a mismatch.
It would be possible to avoid the exception handling for InputMismatchException
by using the hasNextInt()
methods of Scanner
until a valid input is entered before attempting to consume it:
while (!kb.hasNextInt()) kb.next();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With