黑马程序员技术交流社区

标题: 关于Exception?? [打印本页]

作者: 騛鹏    时间: 2013-3-15 09:51
标题: 关于Exception??
本帖最后由 騛鹏 于 2013-3-15 15:13 编辑

  1. <P> int div (int a, int b)  是否添加throws Exception  结果一样都能检测异常。 那么添加意义何在? 怎么讲更安全?</P>
复制代码
  1. class Demo
  2. {
  3. int div(int a, int b)//throws Exception
  4. {
  5. return a/b;
  6. }
  7. }
  8. class ExceptionDemo
  9. {
  10. public static void main(String[] args)
  11. {
  12. Demo d = new Demo();
  13. try
  14. {
  15. int x = d.div(4,0);
  16. System.out.println("x="+ x);
  17. }
  18. catch (Exception e)
  19. {
  20. e.printStackTrace();
  21. }
  22. System.out.println("over");
  23. }
  24. }
复制代码

作者: 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