之前創建由於Java 7中,我們可以使用try
與資源:使用的資源,爲
try (One one = new One(); Two two = new Two()) {
System.out.println("try");
} catch (Exception ex) { ... }
現在的問題是,爲什麼我必須建立在try
語句來的對象?爲什麼不允許我這樣的語句之前創建的對象:
One one = new One();
try (one; Two two = new Two()) {
System.out.println("try");
} catch (Exception ex) { ... }
我看不出有任何理由,爲什麼這應該是一個問題。雖然我收到錯誤消息「在此語言級別不支持資源引用」。我將我的IDE(IntelliJ IDEA)設置爲Java 8,因此應該可以工作。有沒有很好的理由,不允許?
因爲如果在構造函數中拋出異常,您將無法捕獲異常。 – Maroun
是的,這可能是我的原因,我同意。我是否正確,這只是他們做出的選擇 - 可以允許外部創建對象 - 我們只是不會捕獲那裏創建的異常 - 對嗎? –
對實例的'try'沒有意義,在已經創建的實例中沒有邏輯。但是,在建設過程中,您可能會遇到例外情況。 – Maroun