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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 周一川 中级黑马   /  2013-4-13 20:25  /  1389 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

什么时候try 什么时候throws

12 个回复

倒序浏览
try用于一般异常的代码块,自己可以手动处理的异常.
而throws则用于把一般的异常向上抛,由上级的执行者去处理这个异常.
回复 使用道具 举报
如果一个方法中的语句执行时可能生成某种异常,但是并不确定如何处理,则此方法应声明抛出异常,表明该方法将不对这些异常做处理,而由该方法的调用者处理,然后
该方法的调用者还不愿意处理的话继续可以抛出,一直到main方法,jvm可定要处理的。虽然编译能通过但一场一旦发生,没有被处理,程序就会非正常终止。所以能处理的尽量还是要try处理 这也是java设计异常的初衷

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
其实这个也没明确的定义,主要是代码规范问题了。如果不嫌弃代码垃圾,直接全部try都行,到了主函数,还try的话。。那就直接中断了。把异常throws 然后另外的地方接收异常,处理掉,这样看着整洁,而且还容易修改,

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
简单的说,当你觉得这个方法内可以处理这个问题时,用try,不可以直接抛异常。throws
回复 使用道具 举报
try--catch是自己写程序处理异常。比如:在做除法时,除数一定不能为0,是的话就会有异常,这里我们就可以来处理try--catch下,catch获取要这个异常,输出给用户,提示除数不能为0。 throws是抛出异常,谁调用,谁去处理,如果调用者也不想处理,也可以抛出。
回复 使用道具 举报
try--catch是自己写程序处理异常。比如:在做除法时,除数一定不能为0,是的话就会有异常,这里我们就可以来处理try--catch下,catch获取要这个异常,输出给用户,提示除数不能为0。 throws是抛出异常,谁调用,谁去处理,如果调用者也不想处理,也可以抛出。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
首先来说一下什么时候使用throws,throws的意思是声明异常,后面可以有多个异常类,再就是我们使用一些
有异常声明的方法的时候我们必须对其进行处理,
一般当我们遇到异常的时候,有两种处理方式:第一种就是throws异常(不建议去使用),
第二种就是进行try{}catch(){}处理,try{}里面放的就是出现异常的代码,catch(需要捕获的异常对象){对该异常进行的处理,}
回复 使用道具 举报
什么时候使用throws,什么时候使用try-catch?

功能内部可以解决,用try-catch


功能内部无法解决,用throws将异常抛出给调用者,由调用者解决


回复 使用道具 举报
Sword 金牌黑马 2013-4-14 01:14:05
10#
简单的说,如果异常要交给调用此函数的调用者的时候,用throws抛出异常,谁调用这段代码,发生异常时他就要处理这写异常。

try--catch是自己写程序处理异常,把可能发生异常的代码放入try块中,catch用来捕获异常,对该异常进行的处理,将异常的结果输出给用户

有时候还要try--catch-finally结构进行处理,finally中一般用于关闭一些系统资源,释放内存等等

这是我自己的总结,希望对你有帮助

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
当你认为程序运行为重大错误时,停止程序的时候,就throws抛出异常
当你认为程序中的错误不足以导致程序崩溃,或影响程序继续运行,就用try捕获

当在函数内部出现了throw抛出异常对象,那就必须给出对应的处理动作
1,要么在内部try catch处理
2,要么在函数上声明让调用者处理。

一般情况下,函数内出现异常,函数上需要声明。

发现打印的结果中只有异常的名称,却没有异常的信息。
因为自定义的异常并未定义信息.

如何定义异常信息呢?
因为父类中已经把异常信息的操作都完成了。
所以子类只需要在构造时,将异常信息传递给父类通过super语句。
那么就可以通过getMessage方法获取自定义的异常信息.

自定义异常:
必须是:自定义类继承Exception

继承Exception的原因:
异常体系特点:因为异常类和异常对象都需要被抛出。
它们都具备可抛性,这个可抛性是Throwable这个体系中的独有特点。
只有这个体系中的类和对象才可以被throws和throw操作.

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
当在函数没出现了throw抛出异常对象时,就需要给出对应的处理动作;
一种是在方法上,通过throws抛出异常类,由调用者处理;
一种是在方法内通过try catch来捕获并处理异常;
回复 使用道具 举报
我的理解就是,程序出现异常时,你需要捕获异常处理异常的时候就try。不需要处理,或者想到其他的调用该方法的地方处理的话,就throws
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马