/testOwnerException.java
public class testOwnerException
{
public static void main(String[] args)
{
int x=10;
try
{
System.out.println("result="+divide(x,5));
System.out.println("result="+divide(x,0));
}
catch(ZeroDivideException e)
{
System.out.println("found ZeroDivideException!");
}
catch(ArithmeticExcepion e)
{
System.out.println("found Arithmetic Exception!");
} public static int divide(int dividend,int divisor) throws ZeroDivideException
{
int result=0;
try
{
result=dividend/divisor;
return result;
}
catch(ArithmeticException e)
{
System.out.println("DO NOT excute divide operation");
throw new ZeroDivideException(divisor+1);
}
}
}
麻烦大家帮我看看哪里有问题,谢谢
public class testOwnerException
{
public static void main(String[] args)
{
int x=10;
try
{
System.out.println("result="+divide(x,5));
System.out.println("result="+divide(x,0));
}
catch(ZeroDivideException e)
{
System.out.println("found ZeroDivideException!");
}
catch(ArithmeticExcepion e)
{
System.out.println("found Arithmetic Exception!");
} public static int divide(int dividend,int divisor) throws ZeroDivideException
{
int result=0;
try
{
result=dividend/divisor;
return result;
}
catch(ArithmeticException e)
{
System.out.println("DO NOT excute divide operation");
throw new ZeroDivideException(divisor+1);
}
}
}
麻烦大家帮我看看哪里有问题,谢谢
{
public static void main(String[] args)
{
int x=10;
try
{
System.out.println("result="+divide(x,5));
System.out.println("result="+divide(x,0));
}
catch(ZeroDivideException e)
{
System.out.println("found ZeroDivideException!");
}
catch(ArithmeticExcepion e)
{
System.out.println("found Arithmetic Exception!");
}
//少了括号
public static int divide(int dividend,int divisor) throws ZeroDivideException
{
int result=0;
try
{
result=dividend/divisor;
return result;
}
catch(ArithmeticException e)
{
System.out.println("DO NOT excute divide operation");
throw new ZeroDivideException(divisor+1);
}
}
}
---------------------------------
这种编译得问题好好找找不就行了
public static int divide(int dividend,int divisor) throws ZeroDivideException
{
int result=0;
try
{
result=dividend/divisor;
return result;
}
catch(ArithmeticException e)
{
System.out.println("DO NOT excute divide operation");
throw new ZeroDivideException(divisor+1);
}
}
那放到前面是不是也一样的效果?
其实是想问,是不是放前放后都没关系,只要编译通过了.然后程序运行的时候就自动会调用这个方法了,哪怕这个方法是写在别的文件里的?
程序不是从头开始读的么?那main方法都结束了,再读后面的,为什么效果还一样?
另外public Exception(String s)这个方法具体是什么意思?
里面的参数的作用是什么?我不理解
书上没讲明白
就是说这个参数为什么是divisor+1,而不是divisor?
有什么区别么?
里面的参数的作用是什么?
有谁能帮忙解答一下,谢谢.
结帖的时候会追加分数的.谢谢谢谢
这个是构造函数,代表用字符串S来抛出这个异常,比如有的时候你可以抛出
throw new IllegalStateException("XXX不合法");这样,到时候你看异常的提示就是
...root: IllegalStateException XXX不合法了
就是让你自己看得比较清楚,知道是哪里错了而已