如何使代码忽略ArrayIndexOutOfBoundsException java

时间:2013-02-25 18:45:38

标签: java indexoutofboundsexception

我想知道java中是否存在一种方法,当迭代数组并在某些索引中放置值时,跳过越界异常并转到下一项。

例如,

           for (int x = 0; x <= array.length; x++) 
           {
               for (int y = 0; y <= array[0].length; x++)
               {
                   // code that determines where to put things and in what indices

                   //if this index is out of the array bounds, I want to forget about it and keep going through the loops

               }

               }

           }

4 个答案:

答案 0 :(得分:3)

  

我想知道java中是否有一种方法,当迭代时   数组并在某些索引中放置值,以跳过越界   例外,只需转到下一个项目

如果 index 超出某个索引的界限,那么下一个索引肯定也会超出范围。让您的代码正常工作。

 for (int x = 0; x <array.length; x++) 
           {
               for (int y = 0; y <array[x].length; y++)
               {

数组索引基于零。即

  

如果数组的长度是n,那么数组的最后一个索引就是ne   n-1个

答案 1 :(得分:0)

右。首先,嵌套循环的更新部分应该是y ++。不是x ++。该代码只会无限循环。

其次,您可以将循环包装在try-catch中,这将捕获异常,但不建议忽略异常。为什么不设计你的代码,以免引发异常?

答案 2 :(得分:0)

Arrays索引从 0 开始。

因此,如果您的Array长度 100 ,则索引为:

  0   1   2   3   4   5  ..... 99   (total size of 100 of course)
  ^   ^   ^   ^   ^   ^        ^
  |   |   |   |   |   |        |
first                         last

当您执行array.length时,实际上 100 ,但您需要进行迭代直到 99

因此,请将<=替换为<

答案 3 :(得分:0)

问题意味着您在数组上使用了无效的索引。这可能是负数,因为所有数组都从0开始。如果数组有 N项,您将尝试获取索引N或更高你也会得到这个例外。只有可用的索引来自 0到N - 1 ,其中0指向第一个项目,N - 1指向最后一个项目。因此,当您的索引超出数据限制范围时,显然索引肯定会超出边界。因此,您可以迭代索引,直到它超出范围并停止迭代,以避免该异常。