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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 695010894 中级黑马   /  2016-3-27 22:53  /  563 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*需求:对老师用电脑上课可能出现的异常进行处理.
开始思考上课中出现的问题
电脑蓝屏  电脑冒烟
要对问题进行描述,封装成对象;
可是冒烟发生后,出现讲课无法继续;
出现了讲师的问题,课时计划无法完成.
*/
  1. class LanPingException extends Exception//蓝屏异常
  2. {
  3.         LanPingException(String message)
  4.         {
  5.                 super(message);
  6.         }
  7. }
  8. class MaoYanException extends Exception//冒烟一异常
  9. {
  10.         MaoYanException(String message)
  11.         {
  12.                 super(message);
  13.         }
  14. }
  15. class NoPlanException extends Exception//课时计划异常
  16. {
  17.         NoPlanException(String message)
  18.         {
  19.                 super(message);
  20.         }
  21. }


  22. class Computer  //创建一个类包括电脑的功能
  23. {
  24.         private int state = 3;//键入不同的值可能导致电脑出现异常
  25.         public void run() throws LanPingException,MaoYanException
  26.         {
  27.                 if (state == 2)
  28.                 throw new LanPingException("蓝屏了");
  29.                 if (state == 3)
  30.                 throw new MaoYanException("冒烟了");

  31.                 System.out.println("电脑运行");
  32.         }
  33.         public void reset()//重启功能
  34.         {
  35.                 state = 1;
  36.                 System.out.println("电脑重启");
  37.         }
  38. }
  39. class Teacher//创建一个类包括:老师用电脑讲课及安排小练习
  40. {
  41.         private String name;//定义老师名字
  42.         private Computer cmpt;//定义所使用电脑
  43.         Teacher(String name)//自定义一个构造方法
  44.         {
  45.                 this.name = name;
  46.                 cmpt = new Computer();
  47.         }
  48.         public void prelect() throws NoPlanException//声明课时计划异常
  49.         {
  50.                 try//处理异常
  51.                 {
  52.                         cmpt.run();
  53.                 }
  54.                 catch (LanPingException e)//蓝屏异常处理
  55.                 {
  56.                         cmpt.reset();//电脑蓝屏重启

  57.                 }
  58.                 catch (MaoYanException e)//电脑冒烟异常处理
  59.                 {
  60.                         test();
  61.                         throw new NoPlanException("课时无法继续"+e.getMessage());//电脑冒烟异常抛出
  62.                 }
  63.                 System.out.println("讲课");
  64.         }
  65.         public void test()
  66.         {
  67.                 System.out.println("做练习");
  68.         }
  69. }


  70. class ExceptionTest
  71. {
  72.         public static void main(String[] agrs)
  73.         {
  74.                 Teacher t = new Teacher("老师");
  75.                 try
  76.                 {
  77.                         t.prelect();
  78.                 }
  79.                 catch (NoPlanException e)//课时计划异常处理
  80.                 {
  81.                         System.out.println(e.toString());
  82.                         System.out.println("换老师或者放假");
  83.                 }
  84.                
  85.         }
  86. }
复制代码




0 个回复

您需要登录后才可以回帖 登录 | 加入黑马