В настоящее время я прохожу через курс Udemy Java и практикую то, что я узнал до сих пор.Повторяющееся сообщение об ошибке внутри цикла while
У меня есть следующая простая программа, которую я планирую использовать, чтобы заставить пользователя ввести свое имя.
import java.util.Scanner;
public class Adventure {
public static final int menuStars = 65;
private static Scanner input = new Scanner(System.in);
public static void main(String[] args) {
String firstName = "";
String lastName = "";
boolean validName = false;
while(!validName){
//Entering first name
System.out.println("Please enter your first name.");
try {
firstName = input.nextLine();
if(firstName.length() == 0){
throw new Exception("Please enter a first name of at least 1 character.");
}else{
//Entering last name
System.out.println("Please enter your last name.");
lastName = input.nextLine();
if(lastName.length() == 0){
throw new Exception("Please enter a last name of at least 1 character");
}else{
System.out.println("You have entered " + firstName +" " + lastName);
}
}
} catch (Exception e) {
System.out.println(e.getMessage());
continue;
}
//Used to terminate loop when both first & last names are valid
validName = true;
}
}
}
Я хочу, чтобы сделать программу повторить сообщение об ошибке, когда пользователь вводит пустое имя вместо перезагрузки всей программы с самого начала.
Например, если пользователь вводит пустое имя, я хочу, чтобы программа повторяла «Пожалуйста, введите имя не менее 1 символа» и когда пользователь вводит пустую фамилию, чтобы он продолжал повторять «Пожалуйста введите фамилию не менее 1 символа ", пока пользователь не введет действительное имя.
Однако в настоящее время, когда пользователь вводит пустое имя или фамилию, моя программа будет повторяться с самого начала, вместо того чтобы повторять только сообщение об ошибке.
Как я могу заставить программу повторить только сообщение об ошибке?
почему вы используете попытаться/поймать? вы хотите использовать их или просто хотите посмотреть, как они работают? –
Если я правильно понимаю, ваше продолжение приведет вас к началу цикла while, который вы хотите.Как правило, в такой программе подходящим способом было бы повторить вопрос, но я думаю, если вы не хотите этого делать, вы можете вывести вопрос из цикла и использовать пустой шрифт. – mcraen
@SkarosIlias Я прочитал, что цикл catch try должен использоваться, когда у меня есть способ обработки исключения. Как таковой, не должен ли я использовать цикл catch catch, поскольку я планирую повторить вопрос? –