黑马程序员技术交流社区
标题:
自定义异常的差错问题
[打印本页]
作者:
一帆风顺
时间:
2012-10-8 22:54
标题:
自定义异常的差错问题
本帖最后由 王博 于 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-8 23:04
MyException 的构造函数不能有返回值,把void去掉
n*=i 语句后加分号
作者:
李兆宁
时间:
2012-10-8 23:10
本帖最后由 李兆宁 于 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);
}
}
}
作者:
qhasilver
时间:
2012-10-8 23:20
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);
}
}
}
复制代码
两个错误,一个是构造方法MyException不应该是void 另一个n*=i 后面少了分号
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2