java入門教程 6 9Java finally

2021-07-12 02:00:12 字數 1185 閱讀 8707

當異常被丟擲,通常方法的執行將作乙個陡峭的非線性的轉向。依賴於方法是怎樣編碼的,異常甚至可以導致方法過早返回。這在一些方法中是乙個問題。例如,如果乙個方法開啟乙個檔案項並關閉,然後退出,你不希望關閉檔案的**被異常處理機制旁路。finally關鍵字為處理這種意外而設計。

finally建立乙個**塊。該**塊在乙個try/catch 塊完成之後另乙個try/catch出現之前執行。finally塊無論有沒有異常丟擲都會執行。

如果異常被丟擲,finally甚至是在沒有與該異常相匹配的catch子句情況下也將執行。乙個方法將從乙個try/catch塊返回到呼叫程式的任何時候,經過乙個未捕獲的異常或者是乙個明確的返回語句,finally子句在方法返回之前仍將執行。這在關閉檔案控制代碼和釋放任何在方法開始時被分配的其他資源是很有用的。finally子句是可選項,可以有也可以無。然而每乙個try語句至少需要乙個catch或finally子句。

下面的例子顯示了3種不同的退出方法。每乙個都執行了finally子句:

// demonstrate finally.

class finallydemo finally

}// return from within a try block.

static void procb() finally

}// execute a try block normally.

static void procc() finally

}public static void main(string args) catch (exception e)

procb();

procc();}}

該例中,proca( )過早地通過丟擲乙個異常中斷了try。finally子句在退出時執行。procb( )的try語句通過乙個return語句退出。在procb( )返回之前finally子句執行。在procc()中,try語句正常執行,沒有錯誤。然而,finally塊仍將執行。

注意:如果finally塊與乙個try聯合使用,finally塊將在try結束之前執行。

下面是上述程式產生的輸出:

inside proca

proca』s finally

exception caught

inside procb

procb』s finally

inside procc

procc』s finally

JAVA 入門教程3

b 靜態初始化 給出初始化值,由系統決定長度。c 動態初始化的格式 a arrayindexoutofbound ception 陣列索引越界異常 原因 你訪問了不存在的索引。b nullpointerexception 空指標異常 原因 陣列已經不在指向堆記憶體了。而你還用陣列名去訪問元素。int...

Java多執行緒入門教程

死亡狀態 dead 執行緒執行完了或者因異常退出了run 方法,該執行緒結束生命週期。修飾普通方法 獲得this物件鎖 synchronized public void synchronized public static void public void 當多個執行緒同時訪問同乙個物件加x鎖的方法...

CSS入門教程

css是 cascading style sheets 的簡稱,中文翻譯為 串接樣式表 也有人翻譯為 樣式表 css用以作為網頁的排版和風格設計,在web標準建站中,對css的熟悉和使用是相當重要的乙個內容。css的作用是彌補html的不足,讓網頁的設計更為靈活。這個文章只是為您介紹css的基礎應用...