我在我的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