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