У меня есть метод validateUser и он должен выбрасывать исключение AccessDeniedException ну который сам создал. И я написал таким образом:
public static void validateUser(User user) throws AccessDeniedException{
if(user.getAge()<18){
throw new AccessDeniedException("Access Denied");
}else{
System.out.println("Age access granted");
}
}
И вопрос в том что как его вывести в методе main, ну допустим вводим логин и пароль юзера и если он меньше 18ти то должен вывести исключение. Ну я создал класс юзер с конструктором и геттерами. Весь код внизу(Не обращайте внимание на другие методы)
public static void main(String[] args) throws UserNotFoundException, AccessDeniedException{
Scanner scanner = new Scanner(System.in);
System.out.println("Введите логин: ");
String login = scanner.nextLine();
System.out.println("Введите пароль: ");
String password = scanner.nextLine();
//TODO Проверить логин и пароль
// User user = getUserByLoginAndPassword(login, password);
// System.out.println("User: " + user.getLogin() + " - " + user.getEmail());
// System.out.println("Access granted");
//TODO Вызвать методы валидации пользователя
}
public static User[] getUsers(){
User user1 = new User("john", "john@gmail.com", "pass", 24);
User user2 = new User("mike", "mike@gmail.com", "qwerty", 22);
User user3 = new User("steve", "steve@gmail.com", "asdfg", 23);
return new User[]{user1, user2, user3};
}
public static User getUserByLoginAndPassword(String login, String password) throws UserNotFoundException{
User[] users = getUsersList();
for (User user : users) {
if(login.equals(user.getLogin()) && password.equals(user.getPassword())){
return user;
}
}
throw new UserNotFoundException("User not found: " + login);
}
private static User[] getUsersList() {
return getUsers();
}
public static void validateUser(User user) throws AccessDeniedException{
if(user.getAge()<18){
throw new AccessDeniedException("Access Denied");
}else{
System.out.println("Age access granted");
}
}