"使用finally块允许您运行任何想要执行的清理类型语句,无论受保护的代码中发生了什么。"我们所说的"清理类型语句"是什么意思?"清除代码"?
正如评论中提到的,"清理"意味着确保已获得的任何资源(打开的文件、数据库连接等)都被适当地关闭或处置,以防止资源泄漏。
例如:
关闭一个打开的数据库连接是很重要的,否则最终用户可能无法连接,因为有太多的打开的连接没有正确关闭。
通常,您需要在try/catch
块的finally
块中执行此代码,以确保即使在使用资源时抛出异常也会发生"清理"。
在现代java (SE 7及更高版本)中,您也可以使用"try with resources"来完成相同的事情。
这里是官方文档的链接以获取更多信息:
最后一块
try with resources
这意味着您可以释放所有资源(例如:流,连接)在您的finally
块,避免内存泄漏。或者您可以清理所有需要清理的finally
块,尽管异常发生在try catch
块。