墨陌之提示您:看後求收藏(第189章 ,/.,帶著遊戲賬號流浪,墨陌之,630看書),接著再看更方便。

請關閉瀏覽器的閱讀/暢讀/小說模式並且關閉廣告遮蔽過濾功能,避免出現內容無法顯示或者段落錯亂。

23、try catch ?nally,try裡有return,?nally還執行麼?

執行,並且?nally的執行早於try裡面的return 結論:

1、不管有木有出現異常,?nally塊中程式碼都會執行;

2、當try和catch中有return時,?nally仍然會執行;

3、?nally是在return後面的表示式運算後執行的(此時並沒有返回運算後的值,而是先把要返回的值保 存起來,管?nally中的程式碼怎麼樣,返回的值都不會改變,任然是之前儲存的值),所以函式返回值是 在?nally執行前確定的;

4、?nally中最好不要包含return,否則程式會提前退出,返回值不是try或catch中儲存的返回值。

24、 excption與error包結構

java可丟擲(throwable)的結構分為三種型別:被檢查的異常(checkedexception),執行時異常(runtiexception),錯誤(error)。

1、執行時異常

定義:runtiexception及其子類都被稱為執行時異常。

特點:java編譯器不會檢查它。也就是說,當程式中可能出現這類異常時,倘若既"沒有透過throws宣告 丟擲它",也"沒有用try-catch語句捕獲它",還是會編譯透過。例如,除數為零時產生的arithticexception異常,陣列越界時產生的dexoutofboundsexception異常,fail-fast機制產生的ncurrentodi?cationexception異常(javautil包下面的所有的集合類都是快速失敗的,“快速失 敗”也就是fail-fast,它是java集合的一種錯誤檢測機制。當多個執行緒對集合進行結構上的改變的操作

時,有可能會產生fail-fast機制。記住是有可能,而不是一定。例如:假設存在兩個執行緒(執行緒1、執行緒2),執行緒1透過iterator在遍歷集合a中的元素,在某個時候執行緒2修改了集合a的結構(是結構上面的 修改,而不是簡單的修改集合元素的內容),那麼這個時候程式就會丟擲ncurrentodi?cationexception 異常,從而產生fail-fast機制,這個錯叫併發修改異常。fail-safe, javautilncurrent包下面的所有的類都是安全失敗的,在遍歷過程中,如果已經遍歷的陣列上的內容 變化了,迭代器不會丟擲ncurrentodi?cationexception異常。如果未遍歷的陣列上的內容發生了變化,則有可能反映到迭代過程中。這就是ncurrenthashap迭代器弱一致的表現。ncurrenthashap的弱一致性主要是為了提升效率,是一致性與效率之間的一種權衡。要成為強一致性,就得到處使用鎖,甚至是全域性鎖,這就與hashtable和同步的hashap一樣了。)等,都屬於運 行時異常。

常 見 的 五 種 運 行 時 異 常 : csscastexception( 類 轉 換 異 常 ) dexoutofboundsexception(陣列越界) nullpoterexception(空指標異常)

arraystoreexception(資料儲存異常,運算元組是型別不一致) bu?erover?owexception

2、被檢查異常

定義:exception類本身,以及exception的子類中除了"執行時異常"之外的其它子類都屬於被檢查異常。

特點 : java編譯器會檢查它。 此類異常,要麼透過throws進行宣告丟擲,要麼透過try-catch進行捕獲處理,否則不能透過編譯。例如,clonenotsupportedexception就屬於被檢查異常。當透過clone介面 去克隆一個物件,而該物件對應的類沒有實現cloneable介面,就會丟擲clonenotsupportedexception異常。被檢查異常通常都是可以恢復的。

如:

ioexception filenotfoundexceptio

本章未完,點選下一頁繼續閱讀。

其他小說相關閱讀More+

終此一生

蘇其

林總家的小男友重生了

彼岸鮮枝

快穿:BE後我成了男主的白月光

夜沐歌