很多次我遇到这样的说法,即应用程序应该始终明确地关闭它打开的所有资源。
我的编程方法是相当务实的,我不喜欢盲目地遵循任何我看不到好处的约定。因此我的问题。
让我们假设:
- 我有一个小应用程序
- 它打开一些资源(例如文件、数据库连接、远程流)并处理它
- 它工作了几分钟,然后退出
- 假设它是用 Java 编写的(如果语言相关)
我真的必须关心关闭我打开的所有资源吗?我猜我打开的所有资源都会在应用程序/虚拟机退出时关闭/释放。我对吗?
如果这是真的,是否有任何令人信服的理由来关心在如此小的、短工作的应用程序中关闭资源?
更新:
这个问题纯粹是假设性的,但不关心这一点的理由是我可能只是在拼凑一些快速脚本并且不想编写任何与手头问题没有直接关系的不必要代码:关闭资源,做所有这些冗长的 try-catch-finally 东西,处理我不关心的异常等。
问题的关键在于不这样做是否会产生任何实际后果。