我在我的 Android 应用程序中得到以下代码:
Event[] events = retrieveEvents();
if (events != null && events.length>0) {
int eventNr = getFromUserInput();
eventNr = eventNr % events.length;
Event event = events[eventNr];
}
retrieveEvents()Event
从 Internet 获取一些 s,因此这可能会失败,尽管为空或null
. 用户可以选择Event
要显示的内容,以避免出现异常,我使用模运算来确保在eventNr
范围内。这适用于我在 BUT 上测试过的任何设备:
我从其他用户那里得到错误报告,其中倒数第二行(数组访问)抛出ArrayIndexOutOfBoundsException
. 这怎么可能发生?我没有检查什么条件?我的错误在哪里?
请记住:retrieveEvents()
andgetFromUserInput()
函数都可以返回无效数据,但我想我检查了每个案例,那么我的错在哪里?