栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Exception练习:学生录入 年龄判断注意点

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Exception练习:学生录入 年龄判断注意点

 最近在学习Java 异常处理的时候,练习了一个学生录入的程序,过程中也遇到了一些处理异常方面的问题,特地将其记录下来,方便日后自己查阅!!!!!!!

一.try...catch注意点
  1. 如果 try 中没有遇到问题,怎么执行?

    会把try中所有的代码全部执行完毕,不会执行catch里面的代码

  2. 如果 try 中遇到了问题,那么 try 下面的代码还会执行吗?

    那么直接跳转到对应的catch语句中,try下面的代码就不会再执行了 当catch里面的语句全部执行完毕,表示整个体系全部执行完全,继续执行下面的代码(注意,如果try中存在2个异常,那么在第一个异常执行之后,直接跳转到对应的catch try中剩下代码都不会执行,包括第二个异常)

  3. 如果出现的问题没有被捕获,那么程序如何运行?

    那么try...catch就相当于没有写.那么也就是自己没有处理. 默认交给虚拟机处理.

  4. 同时有可能出现多个异常怎么处理?

    出现多个异常,那么就写多个catch就可以了. 注意点:如果多个异常之间存在子父类关系.那么父类一定要写在下面

二.异常练习(学生录入)
 public void setAge(int age) {
        if(age>=18&&age<=25){
            this.age = age;
        }else{
            throw new NumberFormatException();
        }

    }
//至于为何为把18-25的年龄判断写到Student类中是因为
//这边是只有一个学生对象 我们可以写在Demo中,但如果有很多个学生对象,那么创建一个学生对象
// 赋值一次就要在Demo中写一次18-25的判断就显得冗余
//所以直接写在学生类中,那么多个学生对象的年龄判断都可以在学生类中进行

主程序

public class ExceptionDemo03 {
    public static void main(String[] args) {
        Student student = new Student();
        Scanner sc= new Scanner(System.in);
        System.out.println("请输入学生的姓名:");
        String name = sc.next();
        student.setName(name);
        while (true)
        {
            try {
                System.out.println("请输入学生的年龄:");
                String ageStr = sc.next();//这边用sc.next是为了既可以输入字符串 也可以输入整数!!!
                int parseInt = Integer.parseInt(ageStr);
                student.setAge(parseInt);
                break;
            }
            catch (NumberFormatException e) {
                System.out.println("请输入一个整数");
            }
            catch (RuntimeException e) {
                //e.printStackTrace();
                System.out.println("请输入一个18-25之间的数");
            }

        }
        System.out.println(student);

    }
}

这位博主讲的不错https://blog.csdn.net/qq_34427165/article/details/83929470?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163331798016780357299387%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163331798016780357299387&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-3-83929470.first_rank_v2_pc_rank_v29&utm_term=try+catch%E7%94%A8%E6%B3%95&spm=1018.2226.3001.4187

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/295113.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号