我已經看到獲取和處理資源的兩種方式。或者:初始化外部或內部的可支配資源try/finally
Resource resource = getResource();
try { /* do something with resource */ }
finally { resource.close(); }
或:
Resource resource = null;
try { resource = getResource(); /* do something with resource */ }
finally { if (resource != null) resource.close(); }
我想知道哪一種風格是優選的。第一個避免if
條件,而第二個(我假設)在分配後但在輸入try
塊之前處理線程中止的情況。這些風格有哪些其他優缺點?我最好使用哪一個?
謝謝。 C#使用關鍵字很好,但有時它不能被使用(例如,使用不實現IDisposable的類型,或者當應該有條件地調用Dispose()時)。至於Java,我對這些問題沒有經驗,但是不能中斷一個線程? – 2009-01-20 21:20:40