黑马程序员技术交流社区
标题:
关于抛出异常的问题
[打印本页]
作者:
胡威
时间:
2011-11-25 20:04
标题:
关于抛出异常的问题
class Demo
{
int div(int x,int y)throws Exception
{
return x/y;
}
}
class ExceptionDemo1
{
public static void main(String[] args)
{
Demo d=new Demo();
int x=d.div(4,1);
System.out.println("x="+x);
System.out.println("over");
}
}
编译时说需要对抛出的Exception捕获或抛出,如果会那为什么下面这个却Catch不到异常啊
class Demo
{
int div(int x,int y)throws Exception
{
return x/y;
}
}
class ExceptionDemo1
{
public static void main(String[] args)
{ Demo d=new Demo();
try
{
int x=d.div(4,1);
System.out.println("x="+x);
}
catch (Exception e)
{
System.out.println(e.toString());
}
System.out.println("over");
}
}
作者:
强子
时间:
2011-11-25 20:31
因为你的div方法抛出了一个异常,所以在调用这个方法的时候必须捕获或者继续向外抛出这个异常
异常并不是什么时候都会发生的,提示需要捕获或抛出只是告诉你有可能会发生异常,你需要去处理
你这个程序之所以抛出异常是因为Y有可能为0 而0 不可以作为除数
然而你在调用的时候传递的y = 1 所以异常未被触发
当你传递div(x, 0)的时候就会捕获异常了
作者:
胡威
时间:
2011-11-25 22:37
java.lang里面定义了一个Class Exception,那个Exception和这里的Exception是一样的吗
作者:
颜小飞
时间:
2011-11-25 23:07
因为在执行d.div(4,1)这个方法时,没有异常发生,所以捕捉不到异常啊。就像你安装了一个报警器,没有事故发生,它不能随便乱叫吧!
作者:
胡威
时间:
2011-11-26 00:04
为什么这里不是throws ArithmeticException,为什么用Exception也可以啊,只看Exception怎么知道抛出的具体是什么异常啊?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2