2013-05-09 53 views
-2

我得到-1從我的response。我得到這個異常,如何處理這個異常,以便我可以避免任何不符合我的Array的整數。如何處理ArrayIndexOutOfBoundsException

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

例如,如果我的數組持有四個項目。

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

如果我得到-1或大於3,我怎麼能處理他們的任何價值。

+4

您可能應該在嘗試訪問數組之前檢查索引。 – manub 2013-05-09 17:15:26

+2

取決於你想如何處理它們 - 要麼檢查邊界,要麼抓住邊界 – 2013-05-09 17:16:14

+0

@isti_spl我聽說抓住一個AIOBE是不好的做法......但是否則會有很好的建議。 – fireshadow52 2013-05-09 17:16:43

回答

5

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
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]; 
} 

這應該做的伎倆;因爲我不知道當索引無效時會發生什麼,所以我把它打開了。

+0

int index = Integer.parseInt(custom.getFriendsList()); if(index <0 || index> list.length) { throw new ArrayIndexOutOfBoundException(「You is in error」); } else { return list [index]; } – 2013-05-09 17:47:12