Я нахожусь в тупике - я написал try/catch для вспомогательного метода. Цель состоит в том, чтобы поймать любой недопустимый вход (что-либо, что не является «мужским» или «женским» (нет конкретного случая). Если вход недействителен, он уведомит пользователя, а затем попросит еще раз. Если он действителен, .. метод возвращает входTry/Catch Exception не работает, как планировалось
Когда я запускаю программу, она не улавливает недействительные входы Почему это не рабочая
Вот вспомогательный метод:
//Helper method that gathers the string input from user
public static String getString() {
//Create new scanner input
Scanner input = new Scanner(System.in);
//Declare and initialize variables
String wordIn = "";
boolean validIn;
//do/while loop for obtaining input and checking validity (try/catch)
do {
validIn = true;
try{
wordIn = input.nextLine();
//End Try
}
catch(Exception invalidInput) {
validIn = false;
input = new Scanner(System.in);
System.out.print("\nYou have entered an invalid input. Please "
+ "enter either \"Male\" or \"Female\" ONLY for this "
+ "selection. The selection is not case sensitive."
+ "\n\nPlease enter your selection: ");
//End Catch
}
//While input is valid, return the input
} while (!validIn);
return wordIn;
//End helper
}
Вот код из теста:
//Obtain user input and print output
String passGender = getString();
System.out.println("\n" + titanic.getSurvivedPassengersGender(passGender)
+ " " + passGender.toLowerCase() + " passengers survived the "
+ "sinking of the Titanic.");
Кажется, что у меня нет условного набора права ... Я не могу найти, где я ошибся. Я все еще новичок в этом, поэтому я уверен, что это простая ошибка. Любая помощь приветствуется. Спасибо, ребята!
После 'wordIn = input.nextLine();', вам нужно проверить его значение. Если это недопустимое значение, вам нужно выбросить исключение, которое будет уловлено в catch. – Atri
Кстати, почему вы хотите выбросить исключение, вместо этого вы можете просто иметь условие. Если строка ввода не является «мужской» или «женской», то вы можете выполнить код, который у вас есть в разделе «catch» – Atri
. Да. Я теперь сертифицированный идиот ... Это был один длинный день. Я не могу поверить, что я упустил тот факт, что я не установил условия для того, что действительно. Что за день! Извините за то, что тратили свое время, спасибо, ребята! – StevenC