用户登录包含用户名和密码自定义两个异常类用Java写
时间: 2023-11-27 21:49:35 浏览: 34
可以定义两个自定义异常类,例如:
```java
public class InvalidUsernameException extends Exception {
public InvalidUsernameException(String message) {
super(message);
}
}
public class InvalidPasswordException extends Exception {
public InvalidPasswordException(String message) {
super(message);
}
}
```
其中,`InvalidUsernameException` 表示用户名不合法,`InvalidPasswordException` 表示密码不合法。这两个异常类继承自 `Exception` 类,可以通过 `super(message)` 方法传入错误信息。
在用户登录时,可以抛出这两个异常类,例如:
```java
public void login(String username, String password) throws InvalidUsernameException, InvalidPasswordException {
if (username == null || username.trim().isEmpty()) {
throw new InvalidUsernameException("用户名不能为空");
}
if (password == null || password.trim().isEmpty()) {
throw new InvalidPasswordException("密码不能为空");
}
// 进行实际的登录操作
}
```
在上述代码中,如果用户名或密码为空,就会抛出相应的异常。调用 `login` 方法的代码可以通过 `try-catch` 块来处理异常。例如:
```java
public static void main(String[] args) {
String username = "test";
String password = "";
try {
login(username, password);
} catch (InvalidUsernameException ex) {
System.out.println("用户名不合法:" + ex.getMessage());
} catch (InvalidPasswordException ex) {
System.out.println("密码不合法:" + ex.getMessage());
}
}
```
在上述代码中,由于密码为空,会抛出 `InvalidPasswordException` 异常,程序会输出相应的错误信息。