写一个方法实现用户登录,传入用户名和密码 如果用户名错误,就抛出自定义登录异常(LoginException),异常信息为用户名不存在。如果密码错了就也抛出登录异常,异常信息为密码错误;如果用户名和密码都对了,输出: 欢迎xxx 注意: 需要使用e.printStackTrace()
时间: 2024-03-02 20:52:53 浏览: 36
好的,这是一个Java的代码实现示例:
```java
public class LoginException extends Exception {
public LoginException(String message) {
super(message);
}
}
public class User {
private String username;
private String password;
public User(String username, String password) {
this.username = username;
this.password = password;
}
public String getUsername() {
return username;
}
public String getPassword() {
return password;
}
}
public class LoginService {
private List<User> users = new ArrayList<>();
public LoginService() {
users.add(new User("user1", "password1"));
users.add(new User("user2", "password2"));
users.add(new User("user3", "password3"));
}
public void login(String username, String password) {
User user = null;
for (User u : users) {
if (u.getUsername().equals(username)) {
user = u;
break;
}
}
try {
if (user == null) {
throw new LoginException("用户名不存在");
}
if (!user.getPassword().equals(password)) {
throw new LoginException("密码错误");
}
System.out.println("欢迎" + username);
} catch (LoginException e) {
e.printStackTrace();
}
}
}
```
在 `LoginService` 类中,`login()` 方法接收用户名和密码作为参数,首先遍历用户列表寻找匹配的用户,如果找不到对应的用户,就抛出自定义的登录异常 `LoginException`,异常信息为“用户名不存在”;如果找到了对应的用户,但是密码不匹配,就同样抛出登录异常 `LoginException`,异常信息为“密码错误”。如果用户名和密码都匹配,就输出欢迎信息。在异常处理中使用 `e.printStackTrace()` 输出异常堆栈信息。