用java编写一个用户登录,自定义两个异常类,都无误则登录
时间: 2023-10-31 17:04:08 浏览: 38
好的,下面是一个简单的用户登录程序,其中包含两个自定义异常类:用户名不存在异常类和密码错误异常类。
```java
import java.util.HashMap;
import java.util.Scanner;
class UserNotFoundException extends Exception {
public UserNotFoundException(String message) {
super(message);
}
}
class PasswordIncorrectException extends Exception {
public PasswordIncorrectException(String message) {
super(message);
}
}
public class UserLogin {
private static HashMap<String, String> users = new HashMap<>();
public static void main(String[] args) {
// 初始化用户数据
users.put("user1", "password1");
users.put("user2", "password2");
users.put("user3", "password3");
Scanner scanner = new Scanner(System.in);
System.out.print("请输入用户名:");
String username = scanner.nextLine();
System.out.print("请输入密码:");
String password = scanner.nextLine();
try {
login(username, password);
System.out.println("登录成功!");
} catch (UserNotFoundException e) {
System.out.println("登录失败:" + e.getMessage());
} catch (PasswordIncorrectException e) {
System.out.println("登录失败:" + e.getMessage());
}
}
public static void login(String username, String password) throws UserNotFoundException, PasswordIncorrectException {
if (!users.containsKey(username)) {
throw new UserNotFoundException("用户名不存在!");
}
String correctPassword = users.get(username);
if (!password.equals(correctPassword)) {
throw new PasswordIncorrectException("密码错误!");
}
}
}
```
程序运行后,会提示用户输入用户名和密码,然后调用 `login` 方法进行登录,如果用户名不存在或者密码错误,则抛出相应的异常类。如果登录成功,则输出"登录成功!"。
需要注意的是,为了抛出自定义异常类,需要在方法声明中使用 `throws` 关键字声明可能会抛出的异常类。在本例中,`login` 方法可能会抛出 `UserNotFoundException` 和 `PasswordIncorrectException` 两种异常类。