关于try catch中的finally终止方法

关于try catch中的finally

为什么要有finally

1.典型例子:
InputStream,OutputStream和java.sql.connection的close()方法,
java.util.timmer的cancel()方法,
Image.flush()方法:释放后不会占用资源,却还是可用状态,再次被使用的话会被重新分配资源,
来关闭和释放资源,这里finally被称为“显式终止方法”。如下图:

关于try catch中的finally终止方法

如果不使用显示的终结方法可能存在的问题?

1.可能会造成内存溢出或者一直能正常运行的程序,运行一段时间后,程序就不能运行了。比如try里面的代码打开了很多文件,执行完后又没有将文件关闭,这样就会造成有大量的文件处于被打开状态,那么当程序再去打开文件的时候,发现不能再打开文件了,程序可能会运行失败

2.因为终止方法被称为“安全网”,即使程序出了异常,最终都会被执行,延迟执行总比不执行好