爪哇国新游记之十一----用异常控制流程

import java.util.HashMap;
import java.util.Map;

public class LoginService{
    private Map<String,String> map;

    public LoginService(){
        map=new HashMap<String,String>();

        map.put("张三", "123");
        map.put("李四", "123");
        map.put("王五", "123");
        map.put("赵六", "1234");
        map.put("孙七", "1234");
    }

    public boolean login(String name,String password) throws NoUserException,ErrorPswdException{

        if(map.containsKey(name)){
            String pswd=map.get(name);

            if(pswd.equals(password)==false){
                throw new ErrorPswdException("用户名"+name+"的密码不是"+password);
            }
        }else{
            throw new NoUserException("DB里没有这个用户名");
        }

        return true;
    }

    public static void main(String[] args){
        LoginService service=new LoginService();
        String name="张三1";
        String pswd="1235";

        try{
            boolean passed=service.login(name,pswd);

            System.out.println("欢迎"+name+"登录系统.");
        }catch(NullPointerException e){
            System.out.println("数据库未就绪,请通知系统管理员.");
        }catch(NoUserException e){
            System.out.println("用户名"+name+"不存在,即将前往注册页面");
        }catch(ErrorPswdException e){
            System.out.println("用户的"+name+"密码"+pswd+"不正确,请明确后再输入");
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}

两个异常类:

public class ErrorPswdException extends Exception{
    public ErrorPswdException(String msg){
        super(msg);
    }
}
public class NoUserException extends Exception{
    public NoUserException(String msg){
        super(msg);
    }
}

爪哇国新游记之十一----用异常控制流程

时间: 2024-10-26 19:20:08

爪哇国新游记之十一----用异常控制流程的相关文章

爪哇国新游记之三十一----日期时间与字符串间的转化

1.由日期时间转化成字符串 Date date = new Date(); Format formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateString=formatter.format(date); 上述代码使用的是SimpleDateFormat的format函数 2.由字符串转化成日期时间 String dateStr1="20141216"; SimpleDateForma

爪哇国新游记之十----异常初相识

import java.util.ArrayList; import java.util.List; public class A{ private int[] arr=new int[3]; private List<String> ls; public A(){ ls=new ArrayList<String>(); ls.add("12"); } public int getArrValue(int i){ return arr[i]; } public

爪哇国新游记之二十一----快算24

四张牌,通过四则运算得到24,一个数限用一次,快者为胜. 代码: import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; /** * 快算24 * @author heyang * */ public class Caculator{ private double anticipate;// 预期结果 private double op1;// 操作数一

爪哇国新游记之十八----泛型栈类

import java.lang.reflect.Array; /** * 泛型栈 * * @param <T> */ public class Stack<T>{ private Class<T> type;// 栈元素所属的类 private int size;// 栈深度 private T[] arr;// 用数组存储 private int top;// 栈顶元素的下标 public Stack(Class<T> type,int size){ t

爪哇国新游记之二十二----算术表达式计算求值

代码: import java.util.ArrayList; import java.util.List; // 辅助类 class Item{ String value; boolean isNumber; public Item(String value,boolean isNumber){ this.value=value; this.isNumber=isNumber; } public Item(char c,boolean isNumber){ this.value=String.

爪哇国新游记之十九----使用Stack检查数字表达式中括号的匹配性

/** * 辅助类 * 用于记载字符和位置 * */ class CharPos{ char c; int pos; public CharPos(char c,int pos){ this.c=c; this.pos=pos; } } /** * 括号检查类 * */ public class BracketChecker{ /** * 检查函数 * @param str * @return * @throws Exception */ public static boolean check(

爪哇国新游记之十六----泛型单链表类

/** * 单链表节点类 * @param <T> */ class Node<T extends Object>{ protected T value; protected Node next; } /** * 单链表类 * @param <T> */ public class ChainList<T extends Object>{ private Node<T> first; public void addTail(T t){ Node&l

爪哇国新游记之十三----XML文件读写

/** * XML读写示例 * @author hx * */ public class XmlReaderWriter{ /** * 读取一个XML文件,返回一个雇员链表 * @param fileName * @return */ public List<Employee> readXml(String fileName){ List<Employee> employees=new ArrayList<Employee>(); SAXReader reader =

爪哇国新游记之十四----初试JDBC

import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class A{ public static void search1(){ Connection conn=null; PreparedStatement ps=null; Resu