1. 程式人生 > >java知識點——java的異常處理

java知識點——java的異常處理

程式中總是有問題。 為了在程式執行過程中能夠正常執行,Java提供的異常處理機制被用來檢測可能的異常,處理異常並導致程式正常執行。 這是Java異常處理。

一、可捕獲的異常

在Java中可以捕獲的異常分為可控異常和執行時異常

  1. 可控式異常

在Java中,那些可以預見的錯誤可以在程式中被編譯的過程中處理,並在程式中給出具體的錯誤資訊,這些錯誤稱為可控異常。。常用的可控式異常如下:

java知識點——java的異常處理

編譯器在Java中無法檢測到的錯誤稱為執行時異常。 執行時的常見例外情況如下:  2. 執行時異常

java知識點——java的異常處理

小編是一個有著5年工作經驗的java程式設計師,對於java,自己有做資料的整合,一個完整學習java的路線,學習資料和工具,相信這裡有很多學習java的小夥伴,我創立了一個2000人學習扣群,479121291。每晚都有java的直播課程。無論是初級還是進階的小夥伴小編我都歡迎!

二、處理異常

在Java中當程式出現異常時,可以使用try···catch、try···catch···finally或try···finally進行處理。

  1. 使用try···catch處理異常

try後是正常執行的語句,而catch後是對異常處理的語句,catch的括號中是程式需要處理的異常型別。語法格式如下:

java知識點——java的異常處理

這裡舉一個算數異常的例子,如下。

java知識點——java的異常處理

這裡1/0是個異常的演算法,因為除數不能為0。執行結果如下:

java知識點——java的異常處理

因為有異常,所以不執行try後的語句,從而執行catch後的語句。其中“e.getMessage()”是獲取異常資訊的方法,用於獲取詳細訊息字串;此外還有printStackTrace()方法,用於將其棧蹤跡輸出至標準錯誤流;toString()方法用於獲得簡短描述。

  2. 使用try···catch···finally處理異常

這裡try、catch後的語句與前面的相同,而finally後的語句無論是否發生異常都要執行,因此finally語句塊通常用於執行垃圾回收。語法格式如下:

java知識點——java的異常處理

  3. 使用try···finally處理異常

在程式發生異常時,就可以在finally語句塊中對其進行相應的處理,另外當程式沒有發生異常時,執行完try和finally之間的語句後,也將執行finally語句塊中的程式碼。語法格式如下:

java知識點——java的異常處理

三、丟擲異常

對於程式中發生的異常,除了上面的try···catch語句處理之外,還可以使用throws宣告或throws語句丟擲異常。

  1. 使用throws宣告丟擲異常

throws用於方法宣告,在宣告方法時使用throws宣告丟擲異常,然後在呼叫該方法中對異常進行處理。

如需宣告多個異常,各異常間要用逗號分隔,語法格式如下:

java知識點——java的異常處理

比如用throws丟擲Exception異常。

java知識點——java的異常處理

  2. 使用throw語句丟擲異常

如果希望程式自行丟擲異常,可以使用throw語句來實現。語法格式如下: throw new Exception("對異常的說明");

使用throw語句丟擲的是異常類的例項,通常與if語句一起使用。如:

java知識點——java的異常處理

3. 使用try···finally處理異常

在程式發生異常時,就可以在finally語句塊中對其進行相應的處理,另外當程式沒有發生異常時,執行完try和finally之間的語句後,也將執行finally語句塊中的程式碼。語法格式如下:

java知識點——java的異常處理

三、丟擲異常

對於程式中發生的異常,除了上面的try···catch語句處理之外,還可以使用throws宣告或throws語句丟擲異常。

  1. 使用throws宣告丟擲異常

throws用於方法宣告,在宣告方法時使用throws宣告丟擲異常,然後在呼叫該方法中對異常進行處理。

如需宣告多個異常,各異常間要用逗號分隔,語法格式如下:

java知識點——java的異常處理

 比如用throws丟擲Exception異常。

java知識點——java的異常處理

2. 使用throw語句丟擲異常

如果希望程式自行丟擲異常,可以使用throw語句來實現。語法格式如下: throw new Exception("對異常的說明");

使用throw語句丟擲的是異常類的例項,通常與if語句一起使用。如:

java知識點——java的異常處理