Проверка логина и пароля
Создать статический метод который принимает на вход три параметра: login, password и confirmPassword.
Login должен содержать только латинские буквы, цифры и знак подчеркивания.
Длина login должна быть меньше 20 символов. Если login не соответствует этим требованиям, необходимо выбросить WrongLoginException.
Password должен содержать только латинские буквы, цифры и знак подчеркивания. Длина password должна быть меньше 20 символов. Также password и confirmPassword должны быть равны. Если password не соответствует этим требованиям, необходимо выбросить WrongPasswordException.
WrongPasswordException и WrongLoginException - пользовательские классы исключения с двумя конструкторами – один по умолчанию, второй принимает сообщение исключения и передает его в конструктор класса Exception.
Обработка исключений проводится внутри метода.
Используем multi-catch block.
Метод возвращает true, если значения верны или false в другом случае.
Ответы
Объяснение:
java:
public static boolean checkLoginAndPassword(String login, String password, String confirmPassword) {
try {
// Проверяем login
if (!login.matches("^[a-zA-Z0-9_]{1,20}$")) {
throw new WrongLoginException();
}
// Проверяем password
if (!password.equals(confirmPassword)) {
throw new WrongPasswordException("Passwords do not match");
}
if (!password.matches("^[a-zA-Z0-9_]{1,20}$")) {
throw new WrongPasswordException();
}
return true;
} catch (WrongLoginException | WrongPasswordException e) {
System.out.println(e.getMessage());
return false;
}
}
Пример использования:
sql:
boolean result = checkLoginAndPassword("my_login123", "my_password123", "my_password123");
if (result) {
System.out.println("Логин и пароль верны");
} else {
System.out.println("Логин и/или пароль неверны");
}
Обратите внимание на использование multi-catch block в строке } catch (WrongLoginException | WrongPasswordException e) {. В этом блоке перехватываются оба типа исключений - WrongLoginException и WrongPasswordException.