10 個令人深惡痛絕的 Java 異常
異常是 Java 程式中經常遇到的問題,我想每一個 Java 程式設計師都討厭異常,一 個異常就是一個 BUG,就要花很多時間來定位異常問題。
今天,小編來列一下 Java 中經常遇到的前 10 個異常,排名不分先後。
1、NullPointerException
空指標異常,操作一個 null 物件的方法或屬性時會丟擲這個異常。
2、OutOfMemoryError
記憶體異常異常,這不是程式能控制的,是指要分配的物件的記憶體超出了當前最大的堆記憶體,需要調整堆記憶體大小(-Xmx)以及優化程式。
3、IOException
IO,即:input, output,我們在讀寫磁碟檔案、網路內容的時候經常會生的一種異常,這種異常是受檢查異常,需要進行手工捕獲。
如檔案讀寫會丟擲 IOException:

4、FileNotFoundException
檔案找不到異常,如果檔案不存在就會丟擲這種異常。
如定義輸入輸出檔案流,檔案不存在會報錯:

FileNotFoundException 其實是 IOException 的子類,同樣是受檢查異常,需要進行手工捕獲。
5、ClassNotFoundException
類找不到異常,Java開發中經常遇到,是不是很絕望?這是在載入類的時候丟擲來的,即在類路徑下不能載入指定的類。
看一個示例:

它是受檢查異常,需要進行手工捕獲。
6、ClassCastException
類轉換異常,將一個不是該類的例項轉換成這個類就會丟擲這個異常。
如將一個數字強制轉換成字串就會報這個異常:

7、NoSuchMethodException
沒有這個方法異常,一般發生在反射呼叫方法的時候,如:

它是受檢查異常,需要進行手工捕獲。
8、IndexOutOfBoundsException
索引越界異常,當操作一個字串或者陣列的時候經常遇到的異常。

如圖所示,它是執行時異常,不需要手工捕獲。
9、ArithmeticException
算術異常,發生在數字的算術運算時的異常,如一個數字除以 0 就會報這個錯。

這個異常雖然是執行時異常,可以手工捕獲丟擲自定義的異常,如:

10、SQLException
SQL異常,發生在操作資料庫時的異常。
如下面的獲取連線:

又或者是獲取下一條記錄的時候:

它是受檢查異常,需要進行手工捕獲。