java公開課-04-異常

一.異常的概念:java

  程序在運行時,發生了咱們沒有預測的狀況,它阻止了程序按照咱們預期效果執行!數據庫

二.全部異常和錯誤的父類--(Throwable)jvm

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

  1.Excetion--異常指針

    (1).運行時異常(RuntimeExction):在程序運行期間產生的異常.對象

      01:ArithmeticException--數學異常繼承

      02:InputMismatchException--輸入類型不匹配異常文檔

      03:NullPointException--空指針異常.數學

    (2).受查異常(checked Excetion):在程序編譯期間產生的異常.it

      01:IOException--.IO異常

      02:EOFException--.意外獲取文件尾端,獲取失敗

      03:FileNotFoundException--文件不存在異常

      04:ClassNotFoundException--類不存在異常.

  2.Error--錯誤

    (1):VirtualMachineError.

      01:OutOMemoryError

      02:StactOverFlowError.

    (2):AWTError:

三.try..catch..finally

  1.try的使用

    (1):try代碼塊不能單獨使用,必須和catch或者finally中的一個一塊兒使用.

    (2):可能發生異常的代碼.

    (3):若是try代碼塊中不發生異常,有finally的狀況下,先執行finally,以後執行finally以後的代碼.

      若是try代碼塊中發生異常,先去catch中匹配異常,若是匹配成功,執行對應的catch.

      不然執行finally,而後程序終止!!!

  2.catch的使用

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

    (2):catch(ArithmeticException ex)定義了異常類型

    (3):能夠同時出現多個,可是不能重複

    (4):多個catch代碼塊中的異常類型書寫順序必須是從小到大

    (5):咱們的異常會從多個catch代碼塊中找到一個最早匹配的,而後交給這個代碼塊處理

    (6):每一個catch代碼塊中的變量都是獨立的,別的代碼塊不能訪問.

    (7):若是全部的catch代碼塊都不匹配,先去執行finally,以後終止程序.

    (8):若是try中沒有發生異常,則全部的catch塊被匹配.

    (9):java1.7的版本中支持多個異常聲明在一個catch中.

  3.finally的使用:

    (1):不管發生什麼異常,finally都會執行

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

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

      System,exit(0),正常退出.

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

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

四:throw throws

  1:throw

    (1)拋出的異常類型能夠是Exception或者其子類!

    (2)一條throw語句只能拋出一個異常對象.

    (3)throw只能出如今方法體內

    (4)對於throw拋出的異常咱們有兩種處理方式.

      01:try..catch..finally

      02.throws

  2.throws

    (1)throws聲明在方法的名稱以後.

    (2)throws能夠聲明多個,每一個異常之間使用逗號隔開,

    (3)throws聲明異常,表示當前方法可能出現異常,方法的調用者來處理異常

    (4)若是在主函數main中舒勇throws,則由咱們的jvm來處理

五.異常鏈.

  1什麼是異常鏈?

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

六:自定義異常:

  1異常類必須是Throwable的子類

  2:定義運行異常 繼承RuntimeException

  3.定義受查異常 繼承Exception.

七:異常的使用原則:

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

  2:爲異常提供說明文檔.

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

  4:保持異常的原子性.

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

  6:在catch中制定具體的異常類型

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

相關文章
相關標籤/搜索