W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
public interface AutoCloseable
一個(gè)在關(guān)閉之前可能持有資源(例如文件或套接字句柄)的對(duì)象。 AutoCloseable 對(duì)象的 close() 方法在退出資源規(guī)范標(biāo)頭中已為其聲明對(duì)象的 try-with-resources 塊時(shí)自動(dòng)調(diào)用。 這種構(gòu)造確保了及時(shí)釋放,避免了資源耗盡異常和錯(cuò)誤,否則可能會(huì)發(fā)生。
修飾符和類型 | 方法 | 描述 |
---|---|---|
void | close() | 關(guān)閉此資源,放棄任何基礎(chǔ)資源。 |
void close() throws Exception
關(guān)閉此資源,放棄任何基礎(chǔ)資源。此方法在由 try-with-resources 語(yǔ)句管理的對(duì)象上自動(dòng)調(diào)用。
雖然此接口方法被聲明為拋出異常,但強(qiáng)烈建議實(shí)現(xiàn)者聲明 close 方法的具體實(shí)現(xiàn)以拋出更具體的異常,或者如果關(guān)閉操作不會(huì)失敗,則根本不拋出異常。
關(guān)閉操作可能失敗的情況需要實(shí)施者仔細(xì)注意。強(qiáng)烈建議在拋出異常之前放棄底層資源并在內(nèi)部將資源標(biāo)記為已關(guān)閉。 close 方法不太可能被多次調(diào)用,因此可以確保及時(shí)釋放資源。此外,它減少了資源包裝或被另一個(gè)資源包裝時(shí)可能出現(xiàn)的問(wèn)題。
強(qiáng)烈建議此接口的實(shí)現(xiàn)者不要讓 close 方法拋出 InterruptedException。此異常與線程的中斷狀態(tài)交互,如果 InterruptedException 為 Throwable#addSuppressed,則可能發(fā)生運(yùn)行時(shí)錯(cuò)誤行為。更一般地說(shuō),如果抑制異常會(huì)導(dǎo)致問(wèn)題,則 AutoCloseable.close 方法不應(yīng)拋出它。
請(qǐng)注意,與 Closeable 的 close 方法不同,此 close 方法不需要是冪等的。換句話說(shuō),多次調(diào)用此 close 方法可能會(huì)產(chǎn)生一些可見(jiàn)的副作用,這與 Closeable.close 不同,如果多次調(diào)用則要求無(wú)效。但是,強(qiáng)烈建議此接口的實(shí)現(xiàn)者使他們的 close 方法具有冪等性。
Throws:
Throw名稱 | Throw描述 |
---|---|
Exception | 如果無(wú)法關(guān)閉此資源 |
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: