写一个方法实现用户登录,传入用户名和密码 如果用户名错误,就抛出自定义登录异常(LoginException),异常信息为用户名不存在。如果密码错了就也抛出登录异常,异常信息为密码错误;如果用户名和密码都对了,输出: 欢迎xxx 注意: 需要使用e.printStackTrace()
时间: 2024-03-02 14:54:36 浏览: 20
好的,下面是一个 Java 方法的实现,实现用户登录的功能,同时处理了用户名和密码错误的异常情况:
```java
public void login(String username, String password) throws LoginException {
// 假设这里有一个 users 数据库表,存储了所有用户的账号和密码
Map<String, String> users = new HashMap<>();
users.put("admin", "admin123");
users.put("guest", "guest123");
if (!users.containsKey(username)) {
// 如果用户名不存在,抛出自定义的 LoginException 异常,异常信息为用户名不存在
throw new LoginException("用户名不存在");
}
String storedPassword = users.get(username);
if (!password.equals(storedPassword)) {
// 如果密码不正确,也抛出 LoginException 异常,异常信息为密码错误
throw new LoginException("密码错误");
}
// 如果用户名和密码都正确,输出欢迎信息
System.out.println("欢迎 " + username);
}
```
如果在调用该方法时,用户名或者密码不正确,就会抛出自定义的 LoginException 异常,并且输出对应的异常信息。如果需要在调用该方法时,捕获 LoginException 异常并处理,可以使用 try-catch 块来实现。例如:
```java
try {
login("admin", "wrongpassword");
} catch (LoginException e) {
e.printStackTrace();
}
```
这样就可以捕获 LoginException 异常,并且在控制台输出异常堆栈信息。