本帖最后由 王博 于 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);
}
}
}
哪位大神给我看看为什么错了,为什么通不过呢
|
|