| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 555 人关注过本帖
标题:[求助] 有关异常的问题
只看楼主 加入收藏
伴我同行
Rank: 1
等 级:新手上路
帖 子:103
专家分:0
注 册:2005-9-13
收藏
 问题点数:0 回复次数:7 
[求助] 有关异常的问题
大虾们帮我解释一下throw 和throw

什么时候使用throws可以不使用throw
2005-10-08 13:11
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
这个问题跟你写写又要写上一大段了.我简单的形象地来告诉你一个方法.
如果你英语稍微懂一点的话,那么你应该知道,动词第三人称单数该怎么处理.

比如 I go to school
        He goes to school
       She goes to school
你明白我在讲什么了吧.
如果我让你把 "他总是在那儿扔球"  翻译成英语,你该怎么翻译呢?
he throws ball there always. 你看这样翻译行不行?
你看到了, 这里用的是 throws, 而不是 throw.

那么一个方法是不是第三人称单数呢? 所以 一个方法扔出一个异常是不是就该用 throws 呢?
举个例子:

public void myMethod() throws MyException
{
  // some code 1
  if(badCondition)
  {
    MyException e = new MyException("My Exception Message");
    throw e;
  }
  // some code 2
}

你看到了, 那个方法用的是throws
而里面用的是throw.

不明白再问

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2005-10-08 14:07
飘飘叶子
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:597
专家分:10
注 册:2005-8-17
收藏
得分:0 
在写的方法后面加上throws,如果以后调用这个方法时出错,便抛出这个错误。举例:
public int a () throws IOException{retrun 1;}
如果以后返回值不为int型则抛出IOException错误。最重要的是当你要使用这个方法时需要使用try块。接上面的例子:
try{
     a();
}
catch(IOException io){}
觉得这种用得比较多的是不可预见的错误,才用throws,比如接收2个数字,让2个数字相除,由于可能会发生除数为0的错误,就用throws。。。不知道你有没有看懂。。。

而throw呢。。。先看一个例子:
class a{
   public a(){
    try{
      int i = 0;
      if(i <0)
      throw new aException();
      else if(i >0)
      throw new bException();
      else
      throw new Exception();
     }
     catch(aException a){}
     catch(bException b){}
     catch(Exception c){}
   }
   class aException extends Exception{}
   class bException extends Exception{}
}
可见并不一定是肯定发生错误才能使用throw的,可以作为跳转语句,具体嘛,说不清楚,自己用了就知道了

向着软件工程师的目标前进!
2005-10-08 14:14
lcm
Rank: 4
等 级:贵宾
威 望:13
帖 子:140
专家分:0
注 册:2005-2-4
收藏
得分:0 
又学了点经验了。。。谢谢kai指点
讲的挺好的。。。的确是一个当老师的料,

从 小 事 做 起,脚 踏 实 地 ~
2005-10-08 14:18
伴我同行
Rank: 1
等 级:新手上路
帖 子:103
专家分:0
注 册:2005-9-13
收藏
得分:0 
谢谢斑竹,但我还是想问一下,重新引发异常是又怎么回事呢?谢谢

1.可悲的是生命不会重来; 2.可喜的是生命不需要重来。
2005-10-09 11:15
gagadiminge
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2005-12-3
收藏
得分:0 
也让我明白很多

2005-12-07 23:39
shuzhenqiu
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2005-12-9
收藏
得分:0 

真的厉害哦

2005-12-10 16:19
w_xiao
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2005-9-6
收藏
得分:0 
当自己知道写的方法里可能出现异常时,就可以在方法后加throws,提醒用这个方法的人要注意可能有异常产生。

---------------------------------------------------------------------------
2005-12-11 00:00
快速回复:[求助] 有关异常的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033859 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved