黑马程序员技术交流社区

标题: 异常处理问题 [打印本页]

作者: HM何伟    时间: 2013-3-30 22:39
标题: 异常处理问题
本帖最后由 HM何伟 于 2013-4-1 00:07 编辑

当i=1时,我这个程序怎出现了死循环啊?
  1. /*
  2.         
  3.   老师上课这个问题,用自己的笔记本

  4.   笔记本事物
  5.      开机运行功能
  6.          2个异常,蓝屏,冒烟

  7.   老师事物
  8.       上课功能
  9. */
  10. class LanPingException extends Exception{
  11.         LanPingException(String msg)
  12.         {
  13.                 super(msg);
  14.         }
  15. }
  16. class MaoYanException extends Exception{
  17.            MaoYanException(String msg)
  18.            {
  19.                  super(msg);
  20.            }
  21. }
  22. class TeachStopException extends Exception{
  23.                    TeachStopException(String msg)
  24.                   {
  25.                         super(msg);
  26.                   
  27.                   }
  28. }
  29. class FixComputer{
  30.           public void Fix()
  31.           {
  32.                 System.out.println("把电脑修好了");
  33.           }
  34. }
  35. class Teacher{
  36.          private String name;
  37.         Teacher(String name)
  38.         {
  39.            this.name=name;
  40.         }
  41.         Computer co=new Computer();
  42.         FixComputer fi=new FixComputer();

  43.         public void teachxue()throws TeachStopException
  44.         {         
  45.                 try
  46.                 {
  47.                    co.run();
  48.                   System.out.println(name+"老师在上课");
  49.                 }
  50.                 catch (LanPingException e)
  51.                 {
  52.                         System.out.println(e.getMessage());
  53.                         co.result();
  54.                         teachxue();
  55.                         
  56.                 }
  57.                 catch(MaoYanException e)
  58.                 {         System.out.println(e.getMessage());
  59.                          this.function();
  60.                 }
  61.            
  62.         }
  63.         public void function()
  64.         {
  65.                 System.out.println("大家做练习吧");
  66.                 fi.Fix();

  67.         }
  68. }
  69. class Computer{
  70.         private int i=1;         
  71.          public void run()throws LanPingException,MaoYanException
  72.         {
  73.             if (i==1)
  74.                      throw new LanPingException("电脑蓝屏了");
  75.                 if(i==2)
  76.                    throw new MaoYanException("电脑冒烟了");
  77.          System.out.println("电脑正常开机运行");
  78.         }
  79.         public void result()
  80.         {
  81.                 System.out.println("电脑重启");
  82.            
  83.         }
  84. }

  85. class ComputerTest{
  86.           public static void main(String[] args)
  87.           {                 Teacher te=new Teacher("石松老师");
  88.                            try
  89.                            {
  90.                                   te.teachxue();
  91.                            }
  92.                            catch (TeachStopException e)
  93.                            {
  94.                                   te.function();
  95.                            }
  96.                 }
  97. }
复制代码

作者: 许庭洲    时间: 2013-4-5 07:24
值得学习ing!
作者: 谢波    时间: 2013-4-5 08:05
重启后 应该将 i 改变,你只打印了 灭有改变 i 的值
作者: 谢达    时间: 2013-4-5 08:05
public void teachxue()throws TeachStopException

        {         

                try

                {

                   co.run();

                  System.out.println(name+"老师在上课");

                }

                catch (LanPingException e)

                {

                        System.out.println(e.getMessage());

                        co.result();

                        teachxue();   //问题出在这里。捕捉到LanPingException之后你的程序又会运行到这里

                        

                }

                catch(MaoYanException e)

                {         System.out.println(e.getMessage());

                         this.function();

                }

           

        }






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