BD1 - Java 2-3 異常

We believe that writing is about content, about what you want to say – not about fancy formatting.
我們堅(jiān)信寫作寫的是內(nèi)容,所思所想,而不是花樣格式。
— Ulysses for Mac

Java第7天上午

上午主要講了異常處理

學(xué)習(xí)目標(biāo):

  • 理解異常概念
  • 運(yùn)用try塊、catch塊和finally塊處理異常
  • 運(yùn)用多重catch塊處理異常
  • 運(yùn)用嵌套try catch塊處理異常
  • 運(yùn)用throw 和 throws處理異常
  • 運(yùn)用java編寫和使用自定義異常

生活中的異常:

QQ圖片20170731124233.png

什么是異常:

什么是異常

異常類的層次結(jié)構(gòu):

層次結(jié)構(gòu)

層次結(jié)構(gòu)
  • Throwable
    • Exception
    • Error

記住常見的異常:

  • Exception
    (異常層次結(jié)構(gòu)的根類)
  • ArithmeticException
    (算術(shù)錯(cuò)誤情形,如以零作除數(shù))
  • ArrayIndexOutOfBoundException
    (數(shù)組大小小于或大于實(shí)際的數(shù)組大小)
  • NullPointerException
    (嘗試訪問 null 對(duì)象成員)
  • ....
異常類

異常處理:

異常處理

進(jìn)行異常處理:(通過5個(gè)關(guān)鍵字實(shí)現(xiàn))

  • try catch finally
  • throw throws


    異常處理

try catch finally:

異常處理塊的一般形式:

異常處理塊的一般形式

try catch 情況一:

try catch 情況一

try中不會(huì)產(chǎn)生異常則不進(jìn)入catch而執(zhí)行后面的語句

try catch 情況一示例:

示例1

學(xué)會(huì)看異常信息:


Paste_Image.png

try catch 情況二:

try catch 情況二

try中產(chǎn)生了異常 進(jìn)入catch中 執(zhí)行完catch中語句后再執(zhí)行后面的代碼段5

try catch 情況二示例:

try catch 情況二示例

try catch 情況三:

try catch 情況三

如果異常類型不匹配,則不進(jìn)入相應(yīng)catch內(nèi),程序中斷運(yùn)行。

try catch 情況三示例:

情況三示例

由情況三 引出finally:

引出finally

finally示例
  • 不管有木有出現(xiàn)異常,finally塊中代碼都會(huì)執(zhí)行
  • 當(dāng)try和catch中有return時(shí),finally仍然會(huì)執(zhí)行
  • finally是在return后面的表達(dá)式運(yùn)算后執(zhí)行的,所以函數(shù)返回值是在finally執(zhí)行前確定的

多重catch塊:

多重catch

注意多重catch塊 異常 順序:
catch異常類 要先catch子類后父類

catch順序

所以 這樣錯(cuò):


catch順序錯(cuò)

(IOException 是 FileNotFoundException的父類)

下面才對(duì):

public class T3 {

    public static void main(String[] args) {
        try{
            FileReader read = new FileReader("d:/test.txt");
            char a = (char)read.read();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

下午做了一些練習(xí):


每日一練:

課堂作業(yè):
作業(yè)點(diǎn)我查看

課外練習(xí):
課外作業(yè)點(diǎn)我查看


拓展閱讀:

1 - Java異常體系結(jié)構(gòu)
2 - 深入理解java異常處理機(jī)制

世界上所有的追求都是因?yàn)闊釔?br> 一枚愛編碼 愛生活 愛分享的IT信徒
— hongXkeX

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容