黑马程序员技术交流社区

标题: 异常的小小小疑惑 [打印本页]

作者: 付江涛    时间: 2014-4-6 16:22
标题: 异常的小小小疑惑
本帖最后由 付江涛 于 2014-4-6 16:23 编辑
  1. /*
  2. 毕老师带电脑上课

  3. 电脑会发生蓝屏、冒烟的问题。

  4. 蓝屏可以重启解决。

  5. 冒烟必须安排做题,并且放假或者换老师。

  6. */
  7. class LanPingException extends Exception //电脑蓝屏异常
  8. {
  9.         LanPingException(String message) //构造方法,传入异常参数
  10.         {
  11.                 super(message);
  12.         }
  13. }
  14. class MaoYanException extends Exception  //电脑冒烟异常
  15. {
  16.         MaoYanException(String message) //构造方法,传入异常参数
  17.         {
  18.                 super(message);
  19.         }
  20. }
  21. class ProjectException extends Exception  //课时无法完成的异常
  22. {
  23.         ProjectException(String message)  //构造方法,传入异常参数
  24.         {
  25.                 super(message);
  26.         }
  27. }
  28. class Computer  //电脑
  29. {
  30.         private int state=3; //定义状态值,以便于判断
  31.         public void run()throws LanPingException,MaoYanException //声明异常
  32.         {
  33.                 if(state==2) //蓝屏值为1
  34.                         throw new LanPingException("电脑蓝屏了");  //抛出异常
  35.                 if(state==3) //冒烟值为2
  36.                         throw new MaoYanException("电脑冒烟了");  //抛出异常
  37.                 System.out.println("-----电脑运行");  //正常运行
  38.         }
  39.         public void reset()  //电脑重启方法
  40.         {
  41.                 //stete=1;  <<<<<<<<<<<<<<<<<<<<========感觉这个没什么用=====  

  42.                 System.out.println("-----重启电脑");
  43.         }
  44. }

  45. class Teacher
  46. {
  47.         private String name; //全局变量
  48.         private Computer c;//全局变量

  49.         Teacher(String name)  //构造函数,直接传入老师姓名并建立电脑对象
  50.         {
  51.                 this.name=name;
  52.                 c=new Computer();   //电脑对象随着老师对象的建立而建立
  53.         }
  54.         public void prelect()throws ProjectException  //抛出异常
  55.         {
  56.                 try  //执行
  57.                 {
  58.                         c.run(); //执行run方法,判断状态值
  59.                 }
  60.                 catch (LanPingException e)  //
  61.                 {
  62.                         System.out.println(e.toString());
  63.                         c.reset();
  64.                 }
  65.                 catch (MaoYanException e)  //  <<------判断为此异常,建立冒烟对象----对不对?                 ① ?
  66.                 {
  67.                         test(); //执行test方法
  68.                         throw new ProjectException("无法完成计划课时,因为:"+e.getMessage());   // ②  抛出异常对象???抛给调用者main方法         
  69.                 }
  70.                

  71.                 System.out.println("-----开始讲课");
  72.         }
  73.         public void test() //test方法
  74.         {
  75.                 System.out.println("做练习吧");
  76.         }
  77. }





  78. class  ExceptionTest2
  79. {
  80.         public static void main(String[] args)
  81.         {
  82.                 Teacher t=new Teacher("毕老师");
  83.                 try//执行
  84.                 {
  85.                         t.prelect(); //执行
  86.                 }
  87.                 catch (ProjectException e)   //--------------           ③?                        
  88.                 {
  89.                         System.out.println(e.toString());
  90.                         System.out.println("换老师或者放假");
  91.                 }
  92.                
  93.         }
  94. }
复制代码


     我想知道①②③三个地方怎么用专业点的话怎么说 ??









欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2