#java #exception
Вопрос:
Это мой метод, в котором я прошу пользователя ввести имя, фамилию и т.д. Нового пользователя: Как реализовать исключение здесь, чтобы, если пользователь введет целое число, показать ему исключение для имени и фамилии?
@Override
public void addNewPassenger(ArrayList<Passenger> passengersList) {
System.out.println("Creating new passenger!");
System.out.print("Add ID of passenger: ");
passenger.setId(scanner.nextInt());
scanner.nextLine();
System.out.print("Add name of passenger: ");
passenger.setFirstName(scanner.nextLine());
System.out.print("Add last name of passenger: ");
passenger.setLastName(scanner.nextLine());
System.out.print("Add email of passenger: ");
passenger.setEmail(scanner.nextLine());
System.out.print("Add balance of passenger: ");
passenger.setBalance(scanner.nextDouble());
System.out.println("You added a new passenger!");
passengersList.add(passenger);
}
Также у меня есть пассажир класса, где с этими полями и геттерами и сеттерами офк.
Я хочу создать класс, который будет содержать исключения, а затем в этом классе создать метод для проверки исключения в случае, если пользователь вводит число вместо буквы.
Я уже видел несколько примеров, но ни один из них не показывает, как создать специальный класс для исключений, а затем использовать специальные методы для исключений, когда пользователь вводит цифры вместо букв, буквы вместо цифр и т. Д.
Ответ №1:
Вы можете определить новый класс исключений:
class NoNumbersException extends Exception
{
NoNumbersException(){
super("You can not enter numbers here.");
}
}
Когда вы нажмете на незаконный ввод (например, «1»), вы можете создать исключение:
public static void main (String[] args) throws java.lang.Exception
{
Scanner scanner = new Scanner(System.in);
try{
System.out.print("Add name of passenger: ");
String name = scanner.nextLine();
if (name.contains("1")) {
throw new NoNumbersException();
}
} catch(NoNumbersException nne) {
System.out.println(nne.getMessage());
}
}