黑马程序员技术交流社区

标题: 关于Excepiton的问题,那位大神看看我的代码哪里有问题 [打印本页]

作者: android-liu    时间: 2015-3-10 23:47
标题: 关于Excepiton的问题,那位大神看看我的代码哪里有问题
  1. /*
  2. * 需求:老师用电脑上课
  3. * 思考:
  4. * 上课是不是会发生一些异常呢?
  5. * 比如: 电脑蓝屏
  6. *                    电脑冒烟
  7. * 要对问题进行描述,封装成对象。
  8. *
  9. *
  10. * */
  11. class LanPingException extends Exception
  12. {
  13.         LanPingException(String mess)
  14.         {
  15.                 super(mess);
  16.                
  17.         }
  18. }
  19. class MaoYanException extends Exception
  20. {
  21.         MaoYanException(String mes)
  22.                 {
  23.                         super(mes);
  24.                        
  25.                 }

  26. }



  27. public class ExceptionDemo3 {

  28.         public static void main(String[] args) {
  29.                 Teacher t=new Teacher("laoshi");
  30.                 t.shangKe();
  31.         }

  32. }
  33. class Computer
  34. {
  35.         private int flag=3;
  36.         public void run()throws LanPingException,MaoYanException
  37.         {
  38.                 if(flag==2)
  39.                         throw new LanPingException("电脑蓝屏了");
  40.                 if(flag==3)
  41.                         throw new MaoYanException("电脑冒烟了");
  42.                 System.out.println("computer run");
  43.                
  44.                
  45.         }
  46.         public void reset()
  47.         {
  48.                
  49.                 System.out.println("computer reset");
  50.                
  51.         }
  52.        


  53. }
  54. class Teacher
  55. {
  56.         private Computer cmpt;
  57.         private String name;
  58.         Teacher(String name)
  59.         {
  60.                 this.name=name;
  61.                  cmpt =new Computer();
  62.         }
  63.         public void shangKe()
  64.         {
  65.                 try {
  66.                         cmpt.run();
  67.                 } catch (LanPingException e) {
  68.                         cmpt.reset();
  69.                         e.printStackTrace();
  70.                 } catch (MaoYanException e) {
  71.                        
  72.                         e.printStackTrace();
  73.                 }
  74.                 System.out.println("开始上课");
  75.                
  76.         }

  77. }
复制代码

作者: 简体字    时间: 2015-3-10 23:58
看不懂   看不懂   看不懂
作者: 一般现在时    时间: 2015-3-11 09:42
你的是什么情况?
作者: 金康俊    时间: 2015-3-11 09:56
没注释的代码都是耍流氓。
作者: 埗箬    时间: 2015-3-11 09:59
好像没问题,但是你的flag好像定义的没有意义啊。你下面没有改变flag的语句,等于说异常的话,一定是“电脑冒烟了”
作者: 无辜被杀害    时间: 2015-3-11 12:02
不知道楼主想要什么效果,你这个flag没有意义,flag没有改变,异常一直是是冒烟这种,我觉得可以在Computer中弄一个setFlag方法来改变flag,不过这又涉及了flag值越界= =不知道其他人有没有更好的办法




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