RE: 关于finally关键字
首先finally中的操作不一定全是清理工作。
如果是清理工作,也不会和java的垃圾回收机制冲突。
比如:
当一个临时文件在读取的过程中发生异常,程序不能继续向下执行,但是需要删除该临时文件。
可以在finally代码块中调用file.delete()操作完成对文件的删除。
但是!!!
该文件是在读取的过程中发生异常,该文件的占有权还没有被释放,所以delete()操作时删不掉此文件的。
但是可以使用deleteOnExit()操作实现,在程序退出时删除该文件。
所以通过这个例子就可以看出来,这两个是不会冲突的哦!
|
|