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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© moonlight 黑马帝   /  2011-11-22 16:46  /  3015 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 moonlight 于 2011-11-23 08:20 编辑

我想弄明白在处理异常的时候finally这个代码块什么时候用,什么时候不用,我现在脑子里乱乱的,请知道的同学讲一下,谢谢!

12 个回复

倒序浏览
这个可以写也可以不写,写了就意味着最后一定要执行这个代码块的内容。

评分

参与人数 1技术分 +1 收起 理由
admin + 1 答题有分!

查看全部评分

回复 使用道具 举报
一般当Try捕捉完以后程序不再往下执行,而finally 都是写一些程序必须执行的的代码,比如输入输出流的关闭,JDBC的关闭之类的。
回复 使用道具 举报
一般当Try捕捉完以后程序不再往下执行,而finally 都是写一些程序必须执行的的代码,比如输入输出流的关闭,JDBC的关闭之类的。

评分

参与人数 1技术分 +1 收起 理由
admin + 1 答题有分!

查看全部评分

回复 使用道具 举报
清秋 黑马帝 2011-11-22 17:09:17
报纸
finally里一般写关闭资源。

很多东西。你要先记住,然后在实践中慢慢体会

评分

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

查看全部评分

回复 使用道具 举报
对于一些代码,我们可能希望无论try语句块中的异常是否抛出,他们都要执行,这时就要在后面加上finally语句了
回复 使用道具 举报
冯敏 黑马帝 2011-11-22 19:22:33
7#
finally语句块中的语句总会执行,不管有没有发生异常,通常在finally中进行资源的清除,如关闭打开的文件和断开数据库的连接,

评分

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

查看全部评分

回复 使用道具 举报
try块中的内容是在无异常发生时执行到结束
catch块中的内容,是在try块中内容发生catch所声明的异常时,跳转到catch块执行
finally块则是无论是否发生异常,都会执行finally块的内容
所以,代码逻辑中有需要无论发生什么都必须执行的代码,则可以放在finally块中
例如:最常见的就是把关闭connection、释放资源等的代码放在finally块中

评分

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

查看全部评分

回复 使用道具 举报
程立彬 黑马帝 2011-11-22 22:01:48
9#
finally 关键字是对 Java 异常处理模型的最佳补充。finally 结构使代码总会执行,而不管有无异常发生。使用 finally 可以维护对象的内部状态,并可以清理非内存资源。 如果没有finally,有时您的代码就会很费解。
回复 使用道具 举报
无论是否产生异常,finally所指定的代码块都要被执行。通常在finally语句块中可以进行资源清楚工作,如关闭打开的文件等。
回复 使用道具 举报
finally中的代码块总是执行的,除非在finally调用之前用到了system.exit(),这样就不会执行了,
回复 使用道具 举报
沙路 黑马帝 2011-11-26 18:24:35
12#
try......catch语句后可以有一个finally语句 , finally语句中的代码块不管异常是否被捕捉总是要执行的。
回复 使用道具 举报
颜小飞 黑马帝 2011-11-26 21:45:50
13#
一般情况下finnaly中的代码总是要执行的,但是如果catch块中遇到异常跳出或者在没有调用finally代码块前遇到return时也会执行不到
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马