黑马程序员技术交流社区
标题:
关于Exception??
[打印本页]
作者:
騛鹏
时间:
2013-3-15 09:51
标题:
关于Exception??
本帖最后由 騛鹏 于 2013-3-15 15:13 编辑
<P> int div (int a, int b) 是否添加throws Exception 结果一样都能检测异常。 那么添加意义何在? 怎么讲更安全?</P>
复制代码
class Demo
{
int div(int a, int b)//throws Exception
{
return a/b;
}
}
class ExceptionDemo
{
public static void main(String[] args)
{
Demo d = new Demo();
try
{
int x = d.div(4,0);
System.out.println("x="+ x);
}
catch (Exception e)
{
e.printStackTrace();
}
System.out.println("over");
}
}
复制代码
作者:
HM张超
时间:
2013-3-15 09:59
我很少抛出异常都用try,
在try里有10行代码,第一行就出错了,程序就停止了,
切记讲会出现异常的代码写在try catch 外部,因为程序内一旦出现异常,那么下面的代码还要走。
希望对您有帮助。
作者:
刘松老师
时间:
2013-3-15 10:28
throws用于声明可能抛出的各种异常,但异常并不一定出现,当异常抛出时,并未定义抛出给某个对象,谁调用谁去进行处理,如果不throws,调用者是不知道是否有异常的,只有在运行后才知道有异常才会去处理,例如楼主你的程序,你可以把try catch去掉,程序编译也不会出错,只有在运行时才报错,而加上throws,这就告诉了方法的调用者:我这个方法可能会有异常产生,你调用的时候需要进行处理,所以声明了异常就必须抛出或者处理异常,一般都是对异常进行try catch块进行处理,不处理就会出现编译错误。java的方法大多都是需要被调用的,不是只用一次,而具体情况对异常的处理也不一样,所以需要使用throws抛出,由调用者决定怎么处理异常,而不是你由决定异常该怎么处理。
作者:
tianyun
时间:
2013-3-15 10:34
java异常分为编译异常和运行异常,抛出异常,可以很清楚知道程序出现问题的位置,当然不抛出异常,java虚拟机也会默认抛出,但虚拟机也会采用默认的处理方式,如编译不通过,自己抛出异常更有助于我们调试程序。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2