如何处理ArrayIndexOutOfBoundsException

时间:2013-05-09 17:13:34

标签: java indexoutofboundsexception

我从-1获得response。我得到这个异常,如何处理这个异常,以便我可以避免任何与我的Array不匹配的整数。

Constants.Friends[Integer.parseInt(custom.getFriendsList())]

例如,如果我的数组包含四个项目。

String[] MyList = {"One","Two","Three","Four"};

如果我得到-1或任何大于3的值,我该如何处理它们。

2 个答案:

答案 0 :(得分:6)

ArrayIndexOutOfBoundsException未经检查的异常,这意味着它通常表示编程错误,而不是程序控制之外的条件。这些例外应该阻止,而不是处理。

在这个特定的实例中,你应该在将它作为索引传递给数组之前检查它,如下所示:

int pos = Integer.parseInt(custom.getFriendsList());
if (pos < 0 || pos >= Constants.Friends.length) {
    // Handle the error and exit or re-read the pos
}
// Accessing Friends[pos] is safe now:
String friend = Constants.Friends[pos];

答案 1 :(得分:1)

int index = Integer.parseInt(custom.getFriendsList());
if (index < 0 || index > list.length)
{
    //notify user that input is invalid retry getting input
}
else
{
    return list[index];
}

这应该可以解决问题;因为我不知道当索引无效时会发生什么,所以我把它打开了。