【发布时间】:2010-11-19 13:55:28
【问题描述】:
我在我的 Android 应用程序中获得了以下代码:
Event[] events = retrieveEvents();
if (events != null && events.length>0) {
int eventNr = getFromUserInput();
eventNr = eventNr % events.length;
Event event = events[eventNr];
}
retrieveEvents() 从 Internet 获取一些 Events,因此这可能会失败,尽管为空或 null。用户可以选择要显示的Event,以避免异常我使用模运算来确保eventNr 在范围内。这适用于我在 BUT 上测试过的任何设备:
我从其他用户那里得到错误报告,其中倒数第二行(数组访问)抛出ArrayIndexOutOfBoundsException。这怎么可能发生?我没有检查什么条件?我的错误在哪里?
记住:retrieveEvents() 和 getFromUserInput() 函数都可以返回无效数据,但我想我检查了每个案例,那么我的错在哪里?
【问题讨论】:
-
所以你确实得到了一个ArrayIndexOutOfBoundsException?在哪条线上?
Event event = events[eventNr];行? -
@aioobe:是的,他说“倒数第二行(数组访问)在哪里抛出......”
-
异常中的索引是什么?
标签: java android arrays bounds