一、用户登录功能
public class Login {
private String userName = "admin";
private String password = "123456";
public void loginInfo(String userName, String password){
if(!userName.equals(this.userName)) {
// TODO 处理用户名错误
}
if(!password.equals(this.password)) {
// TODO 处理密码错误
}
}
public static void main(String[] args) {
Login login = new Login();
login.loginInfo("Admin", "123456");
}
}
二、自定义异常类
处理用户名密码错误的时候可能就需要抛出两种异常。可以基于已有的异常类进行扩展(继承), 创建与我们业务相关的异常类。
class UserNameError extends Exception {
public UserNameError(String message) {
super(message);
}
}
class PasswordError extends Exception {
public PasswordError(String message) {
super(message);
}
}
三、Login的代码可以改写为
public void loginInfo(String userName, String password) throws UserNameError, PasswordError{
if(!userName.equals(this.userName)) {
throw new UserNameError("用户名错误");
}
if(!password.equals(this.password)) {
throw new PasswordError("密码错误");
}
}
public static void main(String[] args) {
try{
Login login = new Login();
login.loginInfo("admin", "123456");
} catch (UserNameError userNameError) {
userNameError.printStackTrace();
} catch (PasswordError passwordError) {
passwordError.printStackTrace();
}
}
四、完整代码
class UserNameError extends Exception {
public UserNameError(String message) {
super(message);
}
}
class PasswordError extends Exception {
public PasswordError(String message) {
super(message);
}
}
public class Login {
private String userName = "admin";
private String password = "123456";
public void loginInfo(String userName, String password) throws UserNameError, PasswordError{
if(!userName.equals(this.userName)) {
throw new UserNameError("用户名错误");
}
if(!password.equals(this.password)) {
throw new PasswordError("密码错误");
}
}
public static void main(String[] args) {
try{
Login login = new Login();
login.loginInfo("admin", "123456");
} catch (UserNameError userNameError) {
userNameError.printStackTrace();
} catch (PasswordError passwordError) {
passwordError.printStackTrace();
}
}
}