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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ztw 中级黑马   /  2014-7-28 18:11  /  1730 人查看  /  17 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

这个finally有什么用呢?感觉有没有都是一样的啊?求大神分析下。

17 个回复

倒序浏览
无论try所指定的程序块中是否抛出异常,finally所指定的代码都要被执行,通常用来做资源的清除工作,如关闭打开的文件、删除临时文件等
回复 使用道具 举报
你看到IO那块就知道了....
回复 使用道具 举报
finally很有用,主要用户关闭资源。IO流的时候一定要写finally
回复 使用道具 举报
finally很有用,主要用与关闭资源。IO流的时候一定要写finally,用于释放资源。
PS:finally只有在System.exit(0);后退出jvm,这种情况finally不执行
回复 使用道具 举报
finally 主要是在try块发生异常时,进行一些资源的关闭工作。
如果try块发生异常,异常直接到catch里面,这时就需要到finally里面去关闭资源。
回复 使用道具 举报
finally的作用就是处理善后
回复 使用道具 举报
finally中的代码是程序必须执行的,不管有没有异常产生,不管finally前面有没有return方法,也不管前面有没有break,continue关键字,他都会在这些方法关键字之前运行完其中的代码,这样子保证了确定做的事情,就像你操作数据库失败了,这儿定义一个finally语句关闭连接是不是很有用啊。
回复 使用道具 举报
和try{}catch{}结合使用,因为finally{}里面的代码最终一定会被执行,所以通常用于关闭资源。
回复 使用道具 举报
王乐乐 发表于 2014-7-29 16:47
和try{}catch{}结合使用,因为finally{}里面的代码最终一定会被执行,所以通常用于关闭资源。 ...

意思就是一般.close()就写到finally呗。。?
回复 使用道具 举报
挥斥方遒 发表于 2014-7-29 16:53
意思就是一般.close()就写到finally呗。。?

对,你可以看看毕向东老师的异常处理部分的视频,讲得很详细。
回复 使用道具 举报
用于关闭资源啊,不然不执行finally会占空间浪费资源
回复 使用道具 举报
好厉害的样子!!!
回复 使用道具 举报
finally代码块常用于释放资源使用,你把异常那部分视频看完就能明白了。
回复 使用道具 举报
finally是不论程序是否出现异常,都会执行的代码块。怎么使用就看实际的需求了。通常用于关闭资源。比如使用JDBC操作数据库时,要使用try-catch-finally块关闭资源;再有就是在使用IO流操作文件的时候,也同样使用finally关闭资源。finally在使用时必须要跟一个try块一起使用。只有一种情况下finally块不会执行:就是在finally之前调用System.exit(0);手动退出程序。注:0代表正常关闭状态,非0值表示异常关闭状态。
回复 使用道具 举报
想了解更多,请点击http://blog.csdn.net/huangxuanheng/article/details/38060055
回复 使用道具 举报
梧桐树下 来自手机 中级黑马 2014-7-29 23:28:18
17#
线程,释放lock锁也用的到
回复 使用道具 举报
Finally
一般是跟在Try-Catch语句之后的,作用说通俗一点就是给程序善后的。java中虽然有很好的垃圾回收机制,但是有些资源还是要手动去关闭的,不然程序的持续运行会对系统造成很大的压力。
Try-Catch语句中可能会引发各种异常,异常的发生可能让程序在代码中的任何一处意外终止并跳转。这时,你可能还没来得及去关闭你已经占用的资源。但是有了Finally,这个问题就不那么需要担心了(之所以说不那么,是因为有两种情况Finally中的语句也不会被执行
1.遇到System.exit(0)
2.发生RuntimeException
这两种情况就需要特殊处理)
总之,finally中的语句一般是你程序最后必须要执行的语句。

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