Android アプリで次のコードを取得しました。
Event[] events = retrieveEvents();
if (events != null && events.length>0) {
int eventNr = getFromUserInput();
eventNr = eventNr % events.length;
Event event = events[eventNr];
}
retrieveEvents() はEvent
インターネットからいくつかの を取得するため、空またはnull
. ユーザーはEvent
、例外を回避するために表示するものを選択できます。モジュロ演算を使用して、eventNr
範囲内にあることを確認します。これは、私がテストしたすべてのデバイスで正常に動作しますが:
最後から 2 行目 (配列アクセス) でArrayIndexOutOfBoundsException
. これはどのように起こりますか?チェックを外した状態は何ですか?私のエラーはどこですか?
覚えておいてください:retrieveEvents()
とgetFromUserInput()
関数は両方とも無効なデータを返す可能性がありますが、すべてのケースをチェックしたと思います。