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

简介:
复制代码
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);
    }
}














本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/xiandedanteng/p/3867441.html,如需转载请自行联系原作者


相关文章
|
机器人 Java Linux
Webots机器人仿真入门(一)
Webots是一个开源的移动机器人仿真模拟器,内置了许多机器人模型。机器人造价普遍超出新手承受范围,对于新手来说使用仿真软件入门是一个不错的选择。
Webots机器人仿真入门(一)
com.github.pagehelper.PageInfo分页插件的12种用法
com.github.pagehelper.PageInfo分页插件的12种用法
897 0
|
7月前
|
机器学习/深度学习 数据采集 人工智能
构建AI智能体:三十五、决策树的核心机制(一):刨根问底鸢尾花分类中的参数推理计算
本文介绍了决策树算法的基本原理和应用。决策树通过一系列特征判断(如西瓜的纹路、声音)进行分类,其结构包括根节点、内部节点、叶节点和分支。算法通过计算信息增益或基尼不纯度选择最佳分裂特征,构建过程采用递归方式。以鸢尾花分类为例,展示了如何用Python实现决策树模型,并分析了节点参数(样本量、基尼值、类别分布)的含义。决策树具有直观易懂的优点,但也容易过拟合。文章强调理解决策树是学习更复杂算法的基础,为后续深入讲解分裂点计算做铺垫。
526 12
|
vr&ar Android开发 数据安全/隐私保护
Android与iOS的演变:一场永无止境的技术较量
【10月更文挑战第27天】 在智能手机操作系统的领域里,Android和iOS一直是两个不可忽视的巨头。它们不仅推动了移动设备技术的快速发展,也引领了用户界面设计和应用程序生态的潮流。本文将探讨这两个系统从诞生到现在的发展轨迹,以及它们之间的竞争如何塑造了今天的移动科技世界。
433 1
|
JavaScript API
一个简单的Vue移动端抽奖页面的示例
一个简单的Vue移动端抽奖页面的示例
793 1
|
人工智能
从《2024年人工智能指数报告》 看AI的最新发展趋势
【斯坦福HAI发布2024年AI指数报告】揭示AI发展10大趋势:AI在特定领域超人但复杂任务仍有挑战;产业界主导AI创新,推出大量模型;训练成本飙升,如GPT-4训练耗资近8千万美元;美国领先,中国持续突破;大模型责任评估缺失;生成式AI投资增长;AI提升工作效率,缩小技能差距;加速科学进步;法规增多;全球对AI既期待又担忧。关注公众号AntDream获取更多详情!
2231 3
从《2024年人工智能指数报告》 看AI的最新发展趋势
|
负载均衡 算法 网络协议
动态路由的主流算法
【8月更文挑战第3天】BGP 协议使用的算法是路径矢量路由协议(path-vector protocol)。它是距离矢量路由协议的升级版。
|
SQL JavaScript 前端开发
建立单机版的hive
为了学习hive SQL,我搭建了单机版的hive,查了网上的资料,走了许多坑,总结如本文所述。
622 0
|
Ubuntu Linux 编译器
Linux通过/proc/version文件
`/proc/version`文件在Linux系统中提供当前内核版本详情,属于伪文件系统 `/proc`,展示内核、硬件和进程信息。通过`cat /proc/version`可查看,如`Linux version 5.4.0-80-generic...`,显示内核版本、编译日期等。但此文件不包含发行版信息,查询发行版详情可查看`/etc/os-release`或用`lsb_release`命令。
1009 6
|
编解码 JavaScript UED
Vue中如何实现动态改变字体大小
Vue中如何实现动态改变字体大小
750 2