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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 一帆风顺 中级黑马   /  2012-10-8 22:54  /  1664 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王博 于 2012-10-9 10:27 编辑

class MyException extends Exception
{
       MyException(String s)
       {
              super(s);
       }
       public void printMsg()
       {
              System.out.println("exception:"+this.getMessage());
              this.printStackTrace();
              System.exit(0);
       }
}
public class MyTry
{
       public void cal(byte k)throws MyException                      //求k的阶乘
       {
              byte i,n=1;
              for (i=1;i<=k ;i++ )
              {
                     if (n>Byte.MAX_VALUE/i)                                   //判断是否会溢出
                              throw new MyException("overflow");       //溢出时抛出异常
                    else
                              n *=i;
              }
              System.out.println(k+"i="+n);
        }
        public void excatch(byte k)
       {
               try
               {
                          cal(k);
               }
               catch (MyException e)
               {
                          e.printMsg();
                }
         }
         public static void main(String[] args)
         {
                 byte n=7;
                 for (byte i=1;i<=n ;i++ )
                {
                          new MyTry().excatch(i);
                 }
        }
}

哪位大神给我看看为什么错了,为什么通不过呢

点评

你得加强基础呀,都是低级错误  发表于 2012-10-9 08:48

3 个回复

倒序浏览
MyException 的构造函数不能有返回值,把void去掉
n*=i 语句后加分号

评分

参与人数 1技术分 +1 收起 理由
韩军博 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 李兆宁 于 2012-10-8 23:12 编辑

       
class MyException extends Exception
{
       MyException(String s)
       {
       super(s);
       }
       public void printMsg()
       {
              System.out.println("exception:"+this.getMessage());
              this.printStackTrace();
              System.exit(0);
       }
}
public class MyTry
{
       public void cal(byte k)throws MyException                      //求k的阶乘
       {
              byte i,n=1;
              for (i=1;i<=k ;i++ )
              {
                     if (n>Byte.MAX_VALUE/i)                                   //判断是否会溢出
                              throw new MyException("overflow");       //溢出时抛出异常
                    else
                              n *=i;
              }
              System.out.println(k+"i="+n);
        }
        public void excatch(byte k)
       {
               try
               {
                          cal(k);
               }
               catch (MyException e)
               {
                          e.printMsg();
                }
         }
         public static void main(String[] args)
         {
                 byte n=7;
                 for (byte i=1;i<=n ;i++ )
                {
                          new MyTry().excatch(i);
                 }
        }
}


评分

参与人数 1技术分 +1 收起 理由
韩军博 + 1

查看全部评分

回复 使用道具 举报
  1. class MyException extends Exception
  2. {
  3.        MyException(String s)
  4.        {
  5.               super(s);
  6.        }
  7.        public void printMsg()
  8.        {
  9.               System.out.println("exception:"+this.getMessage());
  10.               this.printStackTrace();
  11.               System.exit(0);
  12.        }
  13. }
  14. public class MyTry
  15. {
  16.        public void cal(byte k)throws MyException                      //求k的阶乘
  17.        {
  18.               byte i,n=1;
  19.               for (i=1;i<=k ;i++ )
  20.               {
  21.                      if (n>Byte.MAX_VALUE/i)                                   //判断是否会溢出
  22.                               throw new MyException("overflow");       //溢出时抛出异常
  23.                     else
  24.                               n *=i ;
  25.               }
  26.               System.out.println(k+"i="+n);
  27.         }
  28.         public void excatch(byte k)
  29.        {
  30.                try
  31.                {
  32.                           cal(k);
  33.                }
  34.                catch (MyException e)
  35.                {
  36.                           e.printMsg();
  37.                 }
  38.          }
  39.          public static void main(String[] args)
  40.          {
  41.                  byte n=7;
  42.                  for (byte i=1;i<=n ;i++ )
  43.                 {
  44.                           new MyTry().excatch(i);
  45.                  }
  46.         }
  47. }
复制代码
两个错误,一个是构造方法MyException不应该是void 另一个n*=i 后面少了分号
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马