A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

/*
        老师带电脑上课
        通过名词提练法,发现有电脑类和老师类两个类
       
        经分析。电脑类会有可能出现异常
        可能出现的异常是
                电脑蓝屏
                电脑冒烟
        经分析:电脑可能会在运行过程中发生异常。
        所以在电脑运行时捕捉异常
       
        经分析。电脑冒烟老师解决不了,报告自己上司也不行
        所以准备抛出自己的异常类。那就是课时无法进行
*/
//定义一个电脑蓝屏异常类
class LanPingException extends Exception {

        LanPingException(String mas) {
                super(mas);
        }

}

//定义一个电脑异常冒烟类
class MaoYanException extends Exception {

        MaoYanException(String mas) {
                super(mas);
        }

}

//课时无法进行异常类
class NoPlanException extends Exception {
       
        NoPlanException(String mas) {
                super(mas);
        }
       
}

//定义一个电脑类
class Computer {
       
        private int a; //定义一个电脑状态值,1:为正常运行。2:为蓝屏。3:为冒烟
        //运行函数
        public void run(int a) throws LanPingException, MaoYanException {
                System.out.println("电脑开始运行"); //如果状态是1,电脑正常运行
                if(a == 2)
                        throw new LanPingException("电脑蓝屏了"); //假如状态是2.电脑蓝屏
                else if(a == 3)
                        throw new MaoYanException("电脑冒烟了"); //假如状态是3,电脑冒烟
        }
       
        //重启函数
        public void reset() throws NoPlanException {
                System.out.println("电脑重启");
                try {
                        run(3);
                } catch(LanPingException e) {
                        reset(); //假如电脑蓝屏了,就把电脑重启
                } catch(MaoYanException e) {
                        throw new NoPlanException("课时无法进行");
                }
        }
       
}

//定义一个老师类
class Teacher {
       
        private String name;
        private Computer comp;
        //写一个构造函数。可以指定老师的名字
        Teacher(String name) {
                this.name = name;
                comp = new Computer();
        }
       
        //老师讲课的函数
        public void jiangKe() throws NoPlanException {
                try {
                        comp.run(2);
                } catch(LanPingException e) {
                        System.out.println(e.toString()); //打印电脑出什么错误了
                        comp.reset(); //假如电脑蓝屏了,就把电脑重启
                } catch(MaoYanException e) {
                        throw new NoPlanException("课时无法进行");
                }
                        System.out.println("上课");
        }
       
}

//运行测试类
class ExceptionDemo4 {
        public static void main(String[] args) throws NoPlanException {
                Teacher t = new Teacher("毕老师");
                try {
                        t.jiangKe();
                } catch(NoPlanException e) {
                        System.out.println("毕老师去休息。让张老师上阵");
                        Teacher t1 = new Teacher("张老师");
                        try {
                                t1.jiangKe();
                        } catch(NoPlanException el) {
                                System.out.println("老师有事,今天放假");
                        }
                }
        }
}

评分

参与人数 1技术分 +1 收起 理由
菜小徐 + 1

查看全部评分

2 个回复

正序浏览
谢谢帮忙
回复 使用道具 举报
楼主这是我帮你修改的你看下还有什么问题
  1. //重启函数
  2.         public void reset() throws NoPlanException {
  3.                 System.out.println("电脑重启");
  4.                 try {
  5.                         run(3);
  6.                 } catch(LanPingException e) {
  7.                         reset(); //假如电脑蓝屏了,就把电脑重启
  8.                 } catch(MaoYanException e) {
  9.                         System.out.println(e.toString());         //这里加了一句,
  10.                         throw new NoPlanException("电脑冒烟了");//再次抛异常导致上一条异常信息没了
  11.                 }
  12.         }
复制代码

评分

参与人数 1技术分 +1 收起 理由
菜小徐 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马