关键字throw和throws的区别

 

void  foo()  throws  FooException,Foo2Exception{ 
          //other  code 
           
          throw  new  FooException(); 
  } 

throw语句用在方法体内,表示抛出异常,由方法体内的语句处理。不能单独使用,要么和try catch一起使用,要么和trows一起使用。 
throws
语句用在方法声明后面,表示这个方法可能抛出异常, 表示的是一种倾向、可能,但不一定实际发生。由调用这个方法的上一级方法中的语句来处理 。后面可以跟多个异常,中间用逗号分割。

 

例如:

void doA() throws Exception1, Exception3 {
  try {
    ……
  } catch(Exception1 e) {
    throw e;
  } catch(Exception2 e) {
    System.out.println("
出错了");
  }
  if (a != b)
    throw new Exception3("
自定义异常");
}

代码块……中可能产生异常Exception1Exception2Exception3
如果产生Exception1异常,则捕捉了之后抛出由该方法的调用者去做处理;
如果产生Exception2异常,则该方法自己做了处理(打印出了说出错了),所以该方法就不会再向外抛出Exception2异常了,void doA() throws Exception1,,Excpetion3里面的Exception2也就不用写了;
Exception3异常是该方法的某段逻辑出错,程序员自己作了处理在该段逻辑错误的情况下抛出异常Exception3,则调用者也需要处理。

 

posted on 2008-07-24 10:44 chenkai 阅读(703) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航:
 
<2008年7月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

导航

统计

常用链接

留言簿(2)

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜