(自定义异常)完成某个计费系统的用户登录和注册模块
自定义异常小练习,登录和注册
/** * @Author Liu Lei * @Date 2020/8/31 16:01 * @Version 1.0 * @description * 登陆异常 */ public class IllegalLoginException extends Exception { public IllegalLoginException() { } public IllegalLoginException(String message) { super(message); } }
/** * @Author Liu Lei * @Date 2020/8/31 16:02 * @Version 1.0 * @description * 注册异常 */ public class IllegalRegisterException extends Exception { public IllegalRegisterException() { } public IllegalRegisterException(String message) { super(message); } }
import java.util.Scanner; /** * @Author Liu Lei * @Date 2020/8/31 17:13 * @Version 1.0 * @description */ public class TestUser { public static void main(String[] args){ UserViewImpl uv = new UserViewImpl(); do{ Scanner sc = new Scanner(System.in); System.out.println("请选择执行的操作: 1、登陆 2、注册 3 退出"); int i = sc.nextInt(); if(i==1){ uv.login(); } else if(i==2){ uv.register(); } else { break; } }while(true); } }
/** * @Author Liu Lei * @Date 2020/8/31 15:58 * @Version 1.0 * @description *创建一个User 类,包括:用户登录名(username)、密码(password)、用户真实姓 * 名(name)、电子邮件地址(email)属性和相应的构造方法及setter/getter 方法。 */ public class User { private String username ; private String password ; private String name ; private String email ; public User() { } public User(String username, String password, String name, String email) { this.username = username; this.password = password; this.name = name; this.email = email; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } }
/** * @Author Liu Lei * @Date 2020/8/31 16:03 * @Version 1.0 * @description */ public interface UserBiz { void register(String username, String password, String rePassword, String name, String email) throws IllegalRegisterException ;//用户注册 void login(String username, String password) throws IllegalLoginException ;//用户登录 }
import java.util.Scanner; /** * @Author Liu Lei * @Date 2020/8/31 16:05 * @Version 1.0 * @description */ public class UserBizImpl implements UserBiz { static int index=0; static Scanner sc = new Scanner(System.in); static User[] users=new User[10]; static{ users[0]=new User("admin", "admin", "Adminstrator", "admin@123.com"); users[1]=new User("Tom", "cat", "tomcat", "tomcat@cat.com"); } @Override public void register(String username, String password, String rePassword, String name, String email) throws IllegalRegisterException { if(!password.equals(rePassword)){ throw new IllegalRegisterException("两次密码不一致"); } for(int i = 0;i<users.length;i++){ if(users[i] ==null){ break; } if(users[i].getUsername().equals(username)){ throw new IllegalRegisterException("用户名已经存在"); } } users[index]=new User(username, rePassword, name, email); index++; System.out.println("注册成功"); } @Override public void login(String username, String password) throws IllegalLoginException { boolean flag = false; for(int i=0;i<users.length;i++) { if (users[i] == null) { break; } if (users[i].getUsername().equals(username)) { if (!users[i].getPassword().equals(password)) { throw new IllegalLoginException("用户名与密码不匹配"); } if (users[i].getUsername().equals(username)) { flag = true; } } } if(!flag) { throw new IllegalLoginException("用户名不存在"); } System.out.println("登陆成功"); } }
/** * @Author Liu Lei * @Date 2020/8/31 16:23 * @Version 1.0 * @description */ public interface UserView { void login() throws IllegalLoginException; void register(); }
import java.util.Scanner; /** * @Author Liu Lei * @Date 2020/8/31 16:24 * @Version 1.0 * @description */ public class UserViewImpl implements UserView { static UserBiz ub =new UserBizImpl(); static Scanner sc= new Scanner(System.in); @Override public void login() { System.out.println("请输入用户名:"); String username = sc.next(); System.out.println("请输入密码:"); String password = sc.next(); try{ ub.login(username,password); }catch (IllegalLoginException e){ e.printStackTrace(); } } @Override public void register() { Scanner sc = new Scanner(System.in); System.out.println("请输入用户名:"); String username=sc.next(); System.out.println("请输入密码:"); String password=sc.next(); System.out.println("请再次输入密码:"); String password2 = sc.next(); System.out.println("请输入姓名:"); String name = sc.next(); System.out.println("请输入邮箱地址"); String email = sc.next(); try { ub.register(username, password, password2, name, email); } catch (IllegalRegisterException e) { // TODO Auto-generated catch block e.printStackTrace(); return ; } } }