- 首頁(yè)|
- 網(wǎng)校|
- 焚題庫(kù)|
- APP |
-
微信公眾號(hào)
在學(xué)習(xí)《Java try catch finally語(yǔ)句》一節(jié)后我們可以發(fā)現(xiàn),當(dāng)程序使用 finally 塊關(guān)閉資源時(shí),程序會(huì)顯得異常臃腫,例如以下代碼。
public static void main(String[] args) { FileInputStream fis = null; try { fis = new FileInputStream("a.txt"); } catch (FileNotFoundException e) { e.printStackTrace(); } finally { // 關(guān)閉磁盤(pán)文件,回收資源 if (fis != null) { try { fis.close(); } catch (IOException e) { e.printStackTrace(); } } }}
Java 7 以前,上面程序中的 finally 代碼塊是不得不寫(xiě)的“臃腫代碼”,為了解決這種問(wèn)題,Java 7 增加了一個(gè)新特性,該特性提供了另外一種管理資源的方式,這種方式能自動(dòng)關(guān)閉文件,被稱(chēng)為自動(dòng)資源管理(Automatic Resource Management)。該特性是在 try 語(yǔ)句上的擴(kuò)展,主要釋放不再需要的文件或其他資源。
自動(dòng)資源管理替代了 finally 代碼塊,并優(yōu)化了代碼結(jié)構(gòu)和提高程序可讀性。語(yǔ)法如下:
填寫(xiě)下面表單即可預(yù)約申請(qǐng)免費(fèi)試聽(tīng)java課程!害怕學(xué)不會(huì)?助教陪讀,隨時(shí)解惑!擔(dān)心就業(yè)?一地學(xué)習(xí),可全國(guó)推薦就業(yè)!
try (聲明或初始化資源語(yǔ)句) { // 可能會(huì)生成異常語(yǔ)句} catch(Throwable e1){ // 處理異常e1} catch(Throwable e2){ // 處理異常e1} catch(Throwable eN){ // 處理異常eN}
當(dāng) try 代碼塊結(jié)束時(shí),自動(dòng)釋放資源。不再需要顯式的調(diào)用 close() 方法,該形式也稱(chēng)為“帶資源的 try 語(yǔ)句”。
注意:
try 語(yǔ)句中聲明的資源被隱式聲明為 final,資源的作用局限于帶資源的 try 語(yǔ)句。
可以在一條 try 語(yǔ)句中聲明或初始化多個(gè)資源,每個(gè)資源以;隔開(kāi)即可。
需要關(guān)閉的資源必 須實(shí)現(xiàn)了 AutoCloseable 或 Closeable 接口。
Closeable 是 AutoCloseable 的子接口,Closeable 接口里的 close() 方法聲明拋出了 IOException,因此它的實(shí)現(xiàn)類(lèi)在實(shí)現(xiàn) close() 方法時(shí)只能聲明拋出 IOException 或其子類(lèi);AutoCloseable 接口里的 close() 方法聲明拋出了 Exception,因此它的實(shí)現(xiàn)類(lèi)在實(shí)現(xiàn) close() 方法時(shí)可以聲明拋出任何異常。
下一篇: 沒(méi)有了
初級(jí)會(huì)計(jì)職稱(chēng)中級(jí)會(huì)計(jì)職稱(chēng)經(jīng)濟(jì)師注冊(cè)會(huì)計(jì)師證券從業(yè)銀行從業(yè)會(huì)計(jì)實(shí)操統(tǒng)計(jì)師審計(jì)師高級(jí)會(huì)計(jì)師基金從業(yè)資格稅務(wù)師資產(chǎn)評(píng)估師國(guó)際內(nèi)審師ACCA/CAT價(jià)格鑒證師統(tǒng)計(jì)資格從業(yè)
一級(jí)建造師二級(jí)建造師消防工程師造價(jià)工程師土建職稱(chēng)房地產(chǎn)經(jīng)紀(jì)人公路檢測(cè)工程師建筑八大員注冊(cè)建筑師二級(jí)造價(jià)師監(jiān)理工程師咨詢(xún)工程師房地產(chǎn)估價(jià)師 城鄉(xiāng)規(guī)劃師結(jié)構(gòu)工程師巖土工程師安全工程師設(shè)備監(jiān)理師環(huán)境影響評(píng)價(jià)土地登記代理公路造價(jià)師公路監(jiān)理師化工工程師暖通工程師給排水工程師計(jì)量工程師
人力資源考試教師資格考試出版專(zhuān)業(yè)資格健康管理師導(dǎo)游考試社會(huì)工作者司法考試職稱(chēng)計(jì)算機(jī)營(yíng)養(yǎng)師心理咨詢(xún)師育嬰師事業(yè)單位教師招聘公務(wù)員公選考試招警考試選調(diào)生村官
執(zhí)業(yè)藥師執(zhí)業(yè)醫(yī)師衛(wèi)生資格考試衛(wèi)生高級(jí)職稱(chēng)護(hù)士資格證初級(jí)護(hù)師主管護(hù)師住院醫(yī)師臨床執(zhí)業(yè)醫(yī)師臨床助理醫(yī)師中醫(yī)執(zhí)業(yè)醫(yī)師中醫(yī)助理醫(yī)師中西醫(yī)醫(yī)師中西醫(yī)助理口腔執(zhí)業(yè)醫(yī)師口腔助理醫(yī)師公共衛(wèi)生醫(yī)師公衛(wèi)助理醫(yī)師實(shí)踐技能內(nèi)科主治醫(yī)師外科主治醫(yī)師中醫(yī)內(nèi)科主治兒科主治醫(yī)師婦產(chǎn)科醫(yī)師西藥士/師中藥士/師臨床檢驗(yàn)技師臨床醫(yī)學(xué)理論中醫(yī)理論