很多時候,我遇到了這樣的聲明,即應用程序應始終明確地關閉它打開的所有資源。關閉資源總是很重要嗎?
我的編程方法比較實用,我不喜歡盲目地遵循任何我沒有明確看到的好處。因此我的問題。
讓我們假設:
- 我有一個小的應用程序
- 它開闢一些資源(例如文件,數據庫連接,遠程流),並對其進行處理
- 它的工作幾分鐘,然後它退出
- 比方說,這是一個Java(如果語言是相關的)
難道我真的關心CL收取我打開的所有資源?我想所有打開的資源都將在應用程序/虛擬機退出時關閉/釋放。我對嗎?
如果這是真的,是否有任何令人信服的理由關心在如此短小的工作應用程序中關閉資源?
UPDATE:
問題純屬假設,但對於不關心有關的說法是,我可能只是黑客一起一些快速的腳本,不想寫任何不必要的代碼沒有直接關係到手邊的問題:關閉資源,做所有這些詳盡的try-catch-finally的東西,處理我不在乎的異常等。
問題的關鍵在於是否有任何實際後果不這樣做。
讓我回答一個問題給你:你爲什麼不**關心關閉資源? –
「猜測當應用程序/虛擬機退出時,我打開的所有資源都將被關閉/釋放。」 - >我的猜測是這不是真的。如果您不關閉並且VM退出,則操作系統可能負責關閉這些流/套接字。 – kosa
爲了擺脫警告,你必須禁止它們,它和.close()一樣多。這也是很好的形式。 –