更新時(shí)間:2020-09-29 來(lái)源:黑馬程序員 瀏覽量:
(1)問(wèn)題分析:
考官是對(duì)異常的考核。異常的分類(lèi),非檢查異常和檢查異常,try chtch finally的使用。
(2)核心答案講解:
所有異常的根類(lèi)為Java.lang.Throwable.Throwable派生了2個(gè)子類(lèi):Error和Exception。
Error代表了JVM本身的錯(cuò)誤,不能被程序員通過(guò)代碼處理,如內(nèi)存溢出。
Exception 分為IoException和RuntimeException 。
Error 和 RuntimeException
以及他們的子類(lèi)。Javac在編譯時(shí),不會(huì)提示和發(fā)現(xiàn)這樣的異常,不要求在程序處理這些異常稱(chēng)之為非檢查異常,比如下標(biāo)越界。編譯器強(qiáng)制必須try.catch處理或throws聲明繼續(xù)拋給上層調(diào)用方法處理的異常稱(chēng)之為檢查異常,比如使用jdbc連接數(shù)據(jù)庫(kù)的SQLException。try塊中放可能發(fā)生異常的代碼。每一個(gè)catch塊用于捕獲并處理一個(gè)特定的異常,或者這異常類(lèi)型的子類(lèi),順序?yàn)閺男〉酱?。finally無(wú)論異常是否發(fā)生,異常是否匹配被處理,finally都會(huì)執(zhí)行。
(3)問(wèn)題擴(kuò)展:
Spring框架的事務(wù)默認(rèn)是RuntimeException才進(jìn)行回滾,修改Transactional注解中的rollbackFor屬性可以指定為exception異?;貪L。
(4)結(jié)合項(xiàng)目中使用:
編寫(xiě)自定義異常,利用throw拋出自定義異常。
猜你喜歡
java訪(fǎng)問(wèn)級(jí)別介紹: private,protected,public和default的區(qū)別