我在我的Android的應用程序下面的代碼:爲什麼在這裏會發生ArrayIndexOutOfBoundsException?
Event[] events = retrieveEvents();
if (events != null && events.length>0) {
int eventNr = getFromUserInput();
eventNr = eventNr % events.length;
Event event = events[eventNr];
}
retrieveEvents()獲取從互聯網上一些Event
S,所以這可能會失敗的,雖然是空的或null
。用戶可以選擇要顯示哪個Event
,以避免異常我使用模運算來確保eventNr
在範圍內。這在我測試過的任何設備上都可以正常工作:
我從第二個最後一行(數組訪問)拋出ArrayIndexOutOfBoundsException
的其他用戶處收到錯誤報告。這怎麼會發生?我沒有選擇什麼條件?我的錯誤在哪裏?
請記住:retrieveEvents()
和getFromUserInput()
函數都可以返回無效數據,但我想我檢查了每一個案例,那麼我的錯在哪裏?
所以你*做*得到一個ArrayIndexOutOfBoundsException?在哪一行? 'Event event = events [eventNr];'line? – aioobe 2010-11-19 13:58:02
@aioobe:是的,他說*「第二行最後一行(數組訪問權限)拋出......」* – 2010-11-19 13:59:00
異常中的索引是什麼? – starblue 2010-11-19 14:07:00