1. 程式人生 > 實用技巧 >神奇的字串匹配:擴充套件KMP演算法

神奇的字串匹配:擴充套件KMP演算法

http://www.360doc.com/content/17/1115/09/35115976_703957459.shtml

Java異常體系

所有的異常類是從 java.lang.Exception 類繼承的子類。

Exception 類是 Throwable 類的子類。除了Exception類外,Throwable還有一個子類Error 。

Java 程式通常不捕獲錯誤。錯誤一般發生在嚴重故障時,它們在Java程式處理的範疇之外。

Error 用來指示執行時環境發生的錯誤。

例如,JVM 記憶體溢位。一般地,程式不會從錯誤中恢復。

異常類有兩個主要的子類:IOException 類和 RuntimeException 類。

異常處理

1、捕獲異常

try{
    //程式程式碼
}catch(異常型別){
    //異常處理
}finally{
    
}
  • Catch 語句包含要捕獲異常型別的宣告。當保護程式碼塊中發生一個異常時,try 後面的 catch 塊就會被檢查。如果發生的異常包含在 catch 塊中,異常會被傳遞到該 catch 塊,這和傳遞一個引數到方法是一樣。

2、多重捕獲塊

  • 可以在 try 語句後面新增任意數量的 catch 塊。
  • 如果保護程式碼中發生異常,異常被拋給第一個 catch 塊。
  • 如果丟擲異常的資料型別與 ExceptionType1 匹配,它在這裡就會被捕獲。
  • 如果不匹配,它會被傳遞給第二個 catch 塊。如此,直到異常被捕獲或者通過所有的 catch 塊。

3、throws/throw關鍵字

如果一個方法沒有捕獲到一個檢查性異常,那麼該方法必須使用 throws 關鍵字來宣告。throws 關鍵字放在方法簽名的尾部。

也可以使用 throw 關鍵字丟擲一個異常,無論它是新例項化的還是剛捕獲到的。

一個方法可以宣告丟擲多個異常,多個異常之間用逗號隔開。

4、finally

finally 關鍵字用來建立在 try 程式碼塊後面執行的程式碼塊。

無論是否發生異常,finally 程式碼塊中的程式碼總會被執行。

在 finally 程式碼塊中,可以執行清理型別等收尾善後性質的語句。

常見異常

1、NullPointerException

當應用程式試圖在需要物件的地方使用 null

時,丟擲該異常

2、IndexOutOfBoundsException

指示某排序索引(例如對陣列、字串或向量的排序)超出範圍時丟擲。

3、NumberFormatException

當應用程式試圖將字串轉換成一種數值型別,但該字串不能轉換為適當格式時,丟擲該異常。

4、NegativeArraySizeException

如果應用程式試圖建立大小為負的陣列,則丟擲該異常。

自定義異常

  • 所有異常都必須是 Throwable 的子類。
  • 如果希望寫一個檢查性異常類,則需要繼承 Exception 類。
  • 如果你想寫一個執行時異常類,那麼需要繼承 RuntimeException 類。