黑马程序员技术交流社区
标题:
在学习异常是的一个疑惑
[打印本页]
作者:
zclove898
时间:
2011-12-12 00:18
标题:
在学习异常是的一个疑惑
本帖最后由 zclove898 于 2011-12-12 22:49 编辑
看一下这个程序:
class Demo
{
int div(int a,int b)throws Exception
{
return a/b;
}
}
class Exception
{
public static void main(String[] args)throws Exception
{
Demo d=new Demo();
int x=d.div(4,0);
Systim.out.println("x="+x);
Systm.out.println("over)";
}
}
这个程序中,主函数main(String[] agrs)后加上throws Exception与不加运行结果是一样的,问:加上throw Exception有什么作用
作者:
吴上储
时间:
2011-12-12 00:32
怎么可能 你主函数 不加throws Exception 首先编译器就会报Unhandled exception type Exception 不让你通过 加上throws Exception 就是说 我知道这里可能会出错 出错时把这个异常抛出来。
作者:
应国炎
时间:
2011-12-12 08:57
不加的话就是语法错误,编译是不通过的. 加了说明把问题抛给JVM来处理了.
不加也行,可以用try来处理掉
作者:
zoufan7410
时间:
2011-12-12 09:12
首先你要知道为什么要声明throws,是因为main里调用了一个己声明异常的div方法,就像你买个配件,别人要告诉你这个配件在什么情况下会发产异常一样,这时你用这配件时如果出现了异常,你就知道该怎么处理这异常一样是一个道理,如果你不在main上面声明,JVM就不知道怎么处理了。就会报编译错误,如果你不想要JVM处理这异常的,你就要用Try catch 语句自己处理。
作者:
唐秀启
时间:
2011-12-12 09:20
int div(int a,int b)throws Exception
throws Exception是抛出异常,然而下面你又没有用try catch 处理异常,直接把异常抛到主函数中去了
而在主函数中
public static void main(String[] args)throws Exception
又抛出异常,没有处理异常。。把这个异常直接抛给了JVM
当你输入除数是0时,报/by zero异常
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2