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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黄湘怡 黑马帝   /  2011-11-8 04:34  /  1600 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

throws 与 try catch 的区别是什么?

8 个回复

倒序浏览
try catch 是考虑到try包含这段代码可能会遇到这种异常,直接用catch捕获处理,catch包含的代码为处理代码
throws是直接把异常抛出去,如果上层代码有处理,就交给上层代码处理
两种方式:

try
{
//可能会出现的异常代码
}
catch(Exception e)
{
//如果代码出现异常就执行这些代码
}

public void getXXX() throws Exception  //如果出现异常,把异常提交给java虚拟机,让java虚拟机自动处理
{
有异常的代码
}

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1 赞一个!

查看全部评分

回复 使用道具 举报
在try{}中的函数在声明时如果throw了一个异常,我们在try{}中调用该函数的时候,必须用catch{}语句捕获异常,或者继续throw异常,不去解决调用函数抛出的异常

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1

查看全部评分

回复 使用道具 举报
throws如果发生了对应的错误后,下边的的确不会被执行;
try catch的理解应该辩证点看:如果catch后没有再次throw出去,那会继续执行;要想不执行必须throw处理
throws 抛出异常,解决不了再向上,直道碰到能解决这个异常的处理程序,就好像你的上司让你执行一项任务,中途你遇到问题不知道如何解决,你把问题返还给你的上司,认为既然是T分配的任务就该知道如何解决这个问题,你的上司无法解决同样把它送给经理解决,依次向上,直到有人能解决这个问题为止(不想自己另外写代码处理异常时非常有用)
try catch 则是考虑到try包含这段代码可能会遇到这种异常,直接用catch捕获处理,catch包含的代码为处理代码

throws 只是把一个异常抛出去了,如果你的上层代码有处理方式,就由上层代码来处理这个异常。
而try/catch对是清楚的知道该操作可能出现什么异常,同时在catch块中应该有处理的方法。
而且还有一种方式就是try/catch/finaly的方式。

Throws是把异常返回给调用者,由调用者处理,调用者还是要try/catch,跑不掉的
catch中就一个简单的SYSTEM.OUT.PRINTLN(…………);还有,连接数据库时会连接不上,你也不知道是驱动问题、电脑问题还是网络问题,发给用户,用户也看不懂,所以统统throws给catch,提示请与管理员联系。。。。。。这就简单多了

throws 写在方法签名后,
throw 写在方法体内,可以写在if()....
也可以catch住一个exception后立刻又把他throw 出去,什么处理也不做,还可以catch住后throw new 一个你自己定义的exception ....

throws 就是把异常抛出,但是在以后要不有个catch接受,要不就抛给主函数.就是逐级往上一级抛,直到有一个接受他的

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1 赞一个!

查看全部评分

回复 使用道具 举报
throw 的作用是抛出异常, 作用于方法,而try的作用是寻找可能存在的异常,应用于表达式,一旦找到将被catcH执行。

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1 赞一个!

查看全部评分

回复 使用道具 举报
恩,我明白了,try是语句中包含可能会产生的异常的语句,catch是用来捕获并处理try中抛出的异常的代码。
而throw是用来从代码中主动抛出异常~!
回复 使用道具 举报
刘福双 黑马帝 2011-11-8 23:26:48
7#
throws捕捉异常直接抛出 try{}里出现的错误在cath捕捉并且执行cath块里的代码
回复 使用道具 举报
肖瑞军 黑马帝 2011-11-8 23:45:48
8#
throws     抛出异常,解决不了再向上直道碰到能解决这个异常的处理程序,就好像你的上司让你执行一项任务,中途你遇到问题不知道如何解决,你把问题返还给你的上司,认为既然是她分配的任务就该知道如何解决这个问题,你的上司无法解决同样把它送给经理解决,依次向上,直到有人能解决这个问题为止。(不想自己另外写代码处理异常时非常有用)
try   catch       则是考虑到try包含这段代码可能会遇到这种异常,直接用catch捕获处理,catch包含的代码为处理代码!
回复 使用道具 举报
七分饱 黑马帝 2011-11-8 23:56:03
9#
throws直接,try catch预防;

学习中……
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马