黑马程序员技术交流社区

标题: 关于异常中的finally代码块 [打印本页]

作者: moonlight    时间: 2011-11-22 16:46
标题: 关于异常中的finally代码块
本帖最后由 moonlight 于 2011-11-23 08:20 编辑

我想弄明白在处理异常的时候finally这个代码块什么时候用,什么时候不用,我现在脑子里乱乱的,请知道的同学讲一下,谢谢!
作者: 侯伟浩    时间: 2011-11-22 16:54
这个可以写也可以不写,写了就意味着最后一定要执行这个代码块的内容。
作者: 袁世宇    时间: 2011-11-22 16:59
一般当Try捕捉完以后程序不再往下执行,而finally 都是写一些程序必须执行的的代码,比如输入输出流的关闭,JDBC的关闭之类的。
作者: 袁世宇    时间: 2011-11-22 17:00
一般当Try捕捉完以后程序不再往下执行,而finally 都是写一些程序必须执行的的代码,比如输入输出流的关闭,JDBC的关闭之类的。
作者: 清秋    时间: 2011-11-22 17:09
finally里一般写关闭资源。

很多东西。你要先记住,然后在实践中慢慢体会
作者: tintick    时间: 2011-11-22 18:27
对于一些代码,我们可能希望无论try语句块中的异常是否抛出,他们都要执行,这时就要在后面加上finally语句了
作者: 冯敏    时间: 2011-11-22 19:22
finally语句块中的语句总会执行,不管有没有发生异常,通常在finally中进行资源的清除,如关闭打开的文件和断开数据库的连接,
作者: zhou_411424    时间: 2011-11-22 19:31
try块中的内容是在无异常发生时执行到结束
catch块中的内容,是在try块中内容发生catch所声明的异常时,跳转到catch块执行
finally块则是无论是否发生异常,都会执行finally块的内容
所以,代码逻辑中有需要无论发生什么都必须执行的代码,则可以放在finally块中
例如:最常见的就是把关闭connection、释放资源等的代码放在finally块中
作者: 程立彬    时间: 2011-11-22 22:01
finally 关键字是对 Java 异常处理模型的最佳补充。finally 结构使代码总会执行,而不管有无异常发生。使用 finally 可以维护对象的内部状态,并可以清理非内存资源。 如果没有finally,有时您的代码就会很费解。
作者: 李大伟    时间: 2011-11-22 23:51
无论是否产生异常,finally所指定的代码块都要被执行。通常在finally语句块中可以进行资源清楚工作,如关闭打开的文件等。
作者: xiwangliujiao    时间: 2011-11-23 00:06
finally中的代码块总是执行的,除非在finally调用之前用到了system.exit(),这样就不会执行了,
作者: 沙路    时间: 2011-11-26 18:24
try......catch语句后可以有一个finally语句 , finally语句中的代码块不管异常是否被捕捉总是要执行的。
作者: 颜小飞    时间: 2011-11-26 21:45
一般情况下finnaly中的代码总是要执行的,但是如果catch块中遇到异常跳出或者在没有调用finally代码块前遇到return时也会执行不到




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2