本帖最后由 黑马-王鹏 于 2013-3-17 19:30 编辑
- /*毕老师用电脑上课。
- 开始思考上课中出现的问题。
- 比如问题是
- 电脑蓝屏。
- 电脑冒烟。
- 要对问题进行描述,封装成对象。
- 可是当冒烟发生后,出现讲课进度无法继续。
- 出现了讲师的问题:课时计划无法完成*/
- class LanPingException extends Exception
- {
- LanPingException(String message)
- {
- super(message);
- }
- }
- class MaoYanException extends Exception
- {
- MaoYanException(String message)
- {
- super(message);
- }
- }
- class NoPlanException extends Exception
- {
- NoPlanException(String msg)
- {
- super(msg);
- }
- }
- class Computer
- {
- private int state = 3;
- public void run()throws LanPingException,MaoYanException
- {
- if(state==2)
- throw new LanPingException("蓝屏了");
- if(state==3)
- throw new MaoYanException("冒烟了");
- System.out.println("电脑运行");
- }
- public void reset()
- {
- state = 1;
- System.out.println("电脑重启");
- }
- }
- class Teacher
- {
- private String name;
- private Computer cmpt;
- Teacher(String name)
- {
- this.name = name;
- cmpt = new Computer();
- }
- public void prelect()throws NoPlanException
- {
- try
- {
- cmpt.run();
- }
- catch (LanPingException e)
- {
- cmpt.reset();
- }
- catch (MaoYanException e)
- {
- test();
- throw new NoPlanException("课时无法继续"+e.getMessage());
- }
- System.out.println("讲课");
- }
- public void test()
- {
- System.out.println("练习");
- }
- }
- class ExceptionTest
- {
- public static void main(String[] args)
- {
- Teacher t = new Teacher("毕老师");
- try
- {
- t.prelect();
- }
- catch (NoPlanException e)
- {
- System.out.println(e.toString());
- System.out.println("换老师或者放假");
- } //运行结果:当state=1时,电脑运行 讲课
- } //运行结果:当state=2时,电脑重启 讲课
- }//运行结果:当state=3时,练习 NoPlanException:课时无法继续 换老师或者放假
- //问题:我不明白程序是怎么调用NoPlanException并显示在屏幕中的?
复制代码 问题:我不明白程序是怎么调用NoPlanException并显示在屏幕中的? |