1. 程式人生 > >java.lang.ArrayIndexOutOfBoundsException異常分析及解決

java.lang.ArrayIndexOutOfBoundsException異常分析及解決

這是一個非常常見的異常,從名字上看是陣列下標越界錯誤,解決方法就是檢視為什麼下標越界。

下面是一個錯誤示例: 

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

從這些提示資訊中可以獲取如下資訊:

1、錯誤發生在93行

2、發生錯誤的時候,下標的值為2

接下來分析為什麼下標值為什麼是2就可以解決了。

之前文章寫到這裡就結束了,但是我看評論中還是有人問,再補充幾句。

第一: 問題的原因是陣列下標越界了,例如陣列的元素個數是5,下標的範圍應該是0..4,如果訪問陣列的時候下標不是0..4就會報在這樣的錯誤。

第二:程式碼提示錯誤行就是發生錯誤的陣列。

解決的方法:

先確認陣列下標的正確範圍,然後再檢查呼叫的時候使用的下標值。

希望更夠幫到你。

相關推薦

java.lang.ArrayIndexOutOfBoundsException異常分析解決

這是一個非常常見的異常,從名字上看是陣列下標越界錯誤,解決方法就是檢視為什麼下標越界。 下面是一個錯誤示例:  Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2  at test4

java.lang.NullPointerException錯誤原因解決思路

本機環境是在myeclipse2017報錯 錯誤資訊可能是這樣,很多時候碰到這樣錯誤,不知道該怎麼入手,下面是報空指向異常的其中一種情況 十一月 27, 2018 11:13:08 上午 org.apache.catalina.core.StandardWrapperValve invoke

java.util.ConcurrentModificationException異常原因解決方法

在java語言中,ArrayList是一個很常用的類,在程式設計中經常要對ArrayList進行刪除操作,在使用remove方法對ArrayList進行刪除操作時,報java.util.ConcurrentModificationException異常,下面探討一下該異常的原因以及解決辦法。 1 impo

java.util.ConcurrentModificationException 原因分析解決方案

碼程式碼的時候發現了這個異常,java.util.ConcurrentModificationException,倒是很熟悉,非執行緒安全的容器被非法修改了,具體什麼原因呢,怎麼避免呢,本文簡單分析一下,這個小問題其實反映了對容器實現理解的不深刻。 首先,本著從源頭找問題的

java.lang.ExceptionInInitializerError異常的的解決方法

java.lang.ExceptionInInitializerErrorat org.jpass.dc.util.HibernateUtil.<clinit>(HibernateUtil.java:23)at org.jpass.dc.Dao.GenericD

Broken pipe異常分析解決

Broken pipe異常分析報告 1.錯誤描述 ClientAbortException: java.io.IOException: Broken pipe 可能出現原因: TCP服務端write資料時,收到SIGPIPE訊號(連線已經終止) 場

java.lang.IllegalStateException 錯誤原因解決方法小記

java.lang.IllegalStateException: Cannot perform this operation because the connection pool has been closed.

Spring上傳檔案java.lang.IllegalStateException: File has been moved - cannot be read again問題分析解決

問題分析: Spring上傳檔案預設的檔案上傳處理器 CommonsMultipartResolver 這個類中使用了 common fileUpload 元件來進行檔案的上傳。 而 fileUpload 元件在進行檔案上傳時因為 java 記憶體有限,所以會先將較大的檔案存放在硬碟

android中java.lang.IllegalStateException異常產生的原因解決辦法

11-09 13:33:56.080: E/MediaRecorder(19865): stop called in an invalid state: 0 11-09 13:33:56.080: I/MediaRecorder(19865): stop 11-09 13:

轉:java.lang.IllegalStateException異常產生的原因解決辦法

錯誤型別大致為以下幾種: java.lang.IllegalStateException:Cannot forward a response that is already committed IllegalStateExce

java.lang.OutOfMemoryError GC overhead limit exceeded原因分析解決方案

最近一個上線執行良好的專案出現使用者無法登入或者執行某個操作時,有卡頓現象。查看了日誌,出現了大量的java.lang.OutOfMemoryError: GC overhead limit exceeded錯誤。 oracle官方給出了這個錯誤產生的原因和解決方法: Exception in thread

java編程中的異常分析面向對象的思考總結[圖]

目錄 內部 釋放資源 包括 sta overload 普通 none 命名 java編程中的異常分析及面向對象的思考總結[圖]1.異常:程序中出現的不正常現象。2.異常的由來:程序在運行的過程中出現了不正常的情況,程序把它看成對象提取了屬性行為(名字,原因,位置等信息)形成

Swagger2 解決 java.lang.NumberFormatException異常

找到一篇說2.9.2版本的Swagger用此方法,結果不行,改為2.9.1就行了 吐下方法是忽略原版本的swagger-annotations和swagger-models,新增1.5.21版本的 <!-- Swagger2 API--> <dependency>

Java 記憶體溢位(java.lang.OutOfMemoryError: Java heap space)分析解決

說明:下面出現的問題為本人在myeclips開發過程中,開發工具時獲取海量資料時出現的問題報錯。由於本人開發電腦使用的4g記憶體,虛擬記憶體與myeclips相關記憶體設定無法滿足要求。 問題分析:(網上資料整合與翻譯) java.lang.OutOfMemo

使用Thumbnailator處理gif圖片時遇到java.lang.ArrayIndexOutOfBoundsException: 4096異常處理

環境 1.7.0_80 在使用Thumbnailator處理gif圖片時,遇到問題: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4096 at com.sun.imageio.plugins.gif.

解決java.lang.IncompatibleClassChangeError異常

在做ssm框架的分散式專案時,使用quartz2.2.1框架新增定時任務時,報java.lang.IncompatibleClassChangeError: Implementing class異常, 異常程式碼如下: Exception in thread "main" org.springfra

Swagger2 解決 java.lang.NumberFormatException異常-不是版本升級這麼簡單

在網上看到很多Swagger2 解決 java.lang.NumberFormatException異常的方法時切換版本,換這個版本那個版本的,我也一一嘗試了,事實證明並不是切換版本這麼簡單。(也許有人的問題不一樣,切換版本成功了。) 廢話少說,檢查一下自己有沒有對In

IDEA執行spark相關程式報陣列越界異常java.lang.ArrayIndexOutOfBoundsException: 10582

筆者執行環境:     Win10 + IDEA + spark2.4 + JDK8 程式執行到 sc.textFile("E:/tmp/test.txt"); 報了陣列越界異常,經檢查是paranamer造成的(網上有同行說JDK8得使用paraname

java動態載入指定的類或者jar包反射呼叫其方法-涉及其他jar中的類就報ClassNotFound問題分析解決思路

       在這篇博文中java動態載入指定的類或者jar包反射呼叫其方法,介紹動態載入指定的類,當時我是拿URLClassLoader介紹的,當然可以自定義一個ClassLoader重寫對應的方

java-jvm-full gc頻繁的分析解決

關於應用full gc頻繁的分析及解決 很久前的工作日記了,移到ITeye上來。 現象 系統報警full gc次數過多,每2分鐘達到了5~6次,這是不正常的現象 在full gc報警時的gc.log如下: 在full gc報警時的jstat如下: sudo -u admin -H /opt/taobao/