Java常見異常類型及原因分析(下)

這裏介紹幾種常見的異常並對原因進行分析,包括:

  • ArrayIndexOutOfBoundsException異常;
  • UnsupportedClassVersionError錯誤;
  • NumberFormatException異常;
  • 堆棧溢出和內存溢出。

3. ArrayIndexOutOfBoundsException異常

這是一個非常常見的異常,從名字上看是數組下標越界錯誤,解決方法就是查看爲什麼下標越界,下面就是一個錯誤實例:

 Exception in thread "main"java.lang.ArrayIndexOutOfBoundsException:2
 at test4.State.nextStates(State.java93)
 at test4.State.main(State.java:478)

從這些提示信息中可以獲取如下信息:
1) 錯誤發生在93行
2)發生錯誤的時候,下標的值爲2
接下來分析爲什麼下標值是2不可以就解決問題了。

4. UnsupportedClassVersionError

錯誤提示如下:

 java.lang.UnsupportedClassVersionError:Bad version number in.class file

錯誤原因:
編譯Java和運行Java所使用的Java的版本不一致。例如,編譯的時候使用的Java版本是6,運行時候使用的Java版本是5。
解決方案:
修改運行環境的Java版本或者修改編譯環境的Java版本,讓兩者保持一致。

5. NumberFormatException異常

數字轉換異常,在把一個表示數字的字符串轉換成數字類型的時候可能會報這個異常,原因是作爲參數的字符串不是由數字組成的。

6. 堆棧溢出和內存溢出

在遞歸調用的時候可能會產生堆棧溢出的情況,因爲在遞歸調用的時候需要把調用的狀態保存起來,如果遞歸的深度達到一定程度,將產生堆棧溢出的異常。
如果虛擬機的內存比較小,而程序對內存的要求比較高,則可能產生內存溢出錯誤。


常見的異常類

異常 說明
RuntimeException Java.lang包中多數異常的基類
ArithmeticException 算術錯誤,如除以0
IllegalArgumentException 方法收到非法參數
SecurityException 試圖違反安全性
ClassNotFoundException 不能加載請求的類
AWTException AWT中的異常
IOException I/O異常的根類
FileNotFoundException 不能找到文件
EOFException 文件結束
發佈了41 篇原創文章 · 獲贊 398 · 訪問量 35萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章