Java公開課-04.異常

一,異常的概念數據庫

  程序在運行時,發生了咱們沒有預測的結果,它阻止了程序按照咱們預期效果執行jvm

二,怎麼保證咱們的程序在發生異常之後 ,代碼繼續執行?函數

  異常處理機制對象

  在程序發生異常之後,還能按照咱們事先設定好的邏輯,繼續執行後續代碼!繼承

三,異常的分類和結構圖文檔

  1.全部異常和錯誤的父類--Throwable編譯器

    Throwable類是Java異常類型的頂層父類,一個對象只有是Throwable類(直接或間接的)實例,它纔是一個異常對象。才能被異常處理機制識別,JDK中內建了一些經常使用的異常類,咱們也能夠自定義異常it

  2.根據編譯器對異常的處理要求,異常分倆類io

    2.1運行時異常(RuntimeException):在程序運行期間產生的異常!編譯

    2.2受查異常(checked Excep):在程序編譯期產生的異常!

  3 Throwable

    3.1 Error          //這個錯,靠異常處理機制處理不了,通常是代碼問題形成的堆棧爆炸等

    3.2 Exception

      3.2.1 受查異常

        3.2.1.1 IOException

        3.2.1.2 EOFException

        3.2.1.3 ClassNotFoundException

        3.2.1.4 FileNotFoundException

      3.2.2 RuntimeException

        3.2.2.1 ArithmeticException

        3.2.2.2 InputMismatchException

        3.2.2.3 NullPointException

四,異常處理方式(一):try-catch-finally

  1.try的使用

    001.try代碼塊不能單獨使用,必須和catch或finally中的一個一塊兒使用

    002.可能發生異常的代碼

    003.若是咱們try代碼塊中不發生異常,有finally的狀況下,先執行finally,以後執行finally以後的代碼塊

      若是咱們try代碼塊發生異常,先去catch中匹配異常,若是匹配成功,執行對應的catch,不然執行finally,而後程序終止

  2.catch的使用

    001.每個catch代碼塊都是用於捕獲並處理一個特定的異常或者是這個異常的子類!

    002.catch(ArithmeticException ex)  定義了異常類型

    003.能夠同時出現多個,但不能重複

    004.多個catch代碼塊中異常類型書寫順序,必須是  從小到大

    005.咱們會從多個catch代碼塊中找到一個最早匹配的,而後交給這個代碼塊處理

    006.每一個代碼塊中的變量是獨立的,別的代碼塊不能訪問

    007.若是每一個代碼塊都不匹配。先去執行fianlly,以後終止程序

    008.若是try中沒有發生異常,則全部catch塊被忽略

    009.jdk1.7的版本中支持多個異常聲明在一個catch塊中

  3.finally的使用

    001.不管發生什麼,fially都會執行

    002.若是try中沒有異常,可是有return,這時候會先執行finally以後執行return

    003.若是代碼中出現System.exit(int status)那麼不會執行finally

      System.exit(0);  正常退出

      System.exit(非0);  非正常退出

    004.作一些程序的清理工做,關閉流,釋放數據庫的鏈接等

五,異常處理方式(二):throw-throws

  1.throw

    01.拋出的異常類型能夠是Exception或者其子類

    02.一條throw語句只能拋出一個異常對象

    03.throw只能出如今方法體內

    04.對於throw拋出的異常咱們有倆種處理方式

      001.try。。。catch。。。finally

      002.throws

  2.throws

    01.throws聲明在方法的名稱以後

    02.throws能夠聲明多個 ,每一個異常異常之間用逗號隔開

    03.throws能夠聲明異常,表示當前方法能夠出現異常,房法的調用者來處理異常

    04.若是在主函數中使用throws,則由咱們的jvm處理

六,異常鏈

    用處:例子:連環汽車追尾,如何頭車找到尾車

    異常鏈是指將捕獲的異常包裝進一個新的異常中,新異常中 記錄原始異常的信息,並從新拋出異常的處理方式

七,自定義異常

    建立繼承Exception的類,或繼承Exception的子類的類

    重寫構造,寫單個帶String,還有帶String和異常對象的那個構造

八。異常的使用原則

  1.異常只能用於非正常狀況

  2.爲異常提供說明文檔

  3.儘量避免異常,特別是運行異常

  4.保持異常的原子性

  5.避免過於龐大的try代碼塊

  6.在catch塊中指定具體的異常類型

  7.不要在catch塊中忽略捕獲的異常

相關文章
相關標籤/搜索