A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 完美恋爱 高级黑马   /  2013-11-27 14:20  /  1333 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 完美恋爱 于 2013-11-27 19:56 编辑

throws是用来声明异常的,那为什么在main函数上throws是抛给JVM处理的意思啊?throws有抛出的意思吗?它不是声明的意思吗,抛出不是throw的功能吗?

6 个回复

倒序浏览
本帖最后由 王雷1 于 2013-11-27 14:31 编辑

仔细一看就知道了:
public Test() throws RepletException {   
try {      
  System.out.println("Test this Project!")   
  }   
catch (Exception e) {     
  throw new Exception(e.toString());   
  }  
}throws是用来声明一个方法可能抛出的所有异常信息throw则是指抛出的一个具体的异常类型。通常在一个方法(类)的声明处通过throws声明方法(类)
可能抛出的异常信息,而在方法(类)内部通过throw声明一个具体的异常信息。throws通常不用显示的捕获异常,可由系统自动将所有捕获的异常信息抛给上级方法;
throw则需要用户自己捕获相关的异常,而后在对其进行相关包装,最后在将包装后的异常信息抛

评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1 赞一个!

查看全部评分

回复 使用道具 举报
王雷1 发表于 2013-11-27 14:30
仔细一看就知道了:
public Test() throws RepletException {   
try {      

总而言之,throws既有声明的意思也有抛出的意思,对吗?
回复 使用道具 举报
总之一句话:throws定义在函数上,即声明也可抛,可抛多个异常,异常可用逗号隔开
                  throw 定义在函数内部,抛出具体异常
回复 使用道具 举报
声明一个异常表示这个方法可能会抛出这个异常
那么谁调用这个方法,谁就需要处理,处理不了就继续抛,或者抛出能处理的异常。
JVM处理不了这个异常,就打印出异常信息。
回复 使用道具 举报
帅气的冬瓜 发表于 2013-11-27 14:49
总之一句话:throws定义在函数上,即声明也可抛,可抛多个异常,异常可用逗号隔开
                  throw ...

就是说throws对可能发生的异常进行声明,然后如果真的发生了异常就直接抛给调用者,对吗?
回复 使用道具 举报
王松松 发表于 2013-11-27 14:56
声明一个异常表示这个方法可能会抛出这个异常
那么谁调用这个方法,谁就需要处理,处理不了就继续抛,或者 ...

大体上了解了,谢谢了哈!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马