benim Android App aşağıdaki kodu var:ArrayIndexOutOfBoundsException neden burada gerçekleşiyor?
Event[] events = retrieveEvents();
if (events != null && events.length>0) {
int eventNr = getFromUserInput();
eventNr = eventNr % events.length;
Event event = events[eventNr];
}
retrieveEvents() internetten bazı Event
s alır, bu nedenle bu bir olsa boş veya null
olmak başarısız olabilir. Kullanıcı, hangi Event
görüntüleneceğini seçebilir, istisnai durumdan kaçınmak için, eventNr
'un sınırlar içinde olduğundan emin olmak için modulo işlemini kullanıyorum. Bu, BUT:
üzerinde test ettiğim tüm aygıtlarda düzgün çalışıyor. Diğer kullanıcılardan (dizi erişimi) ArrayIndexOutOfBoundsException
'u attığında hata raporları alıyorum. Bu nasıl olabilir? Hangi koşulda kontrolsüz kaldım? Benim hatam nerede?
Unutmayın: retrieveEvents()
ve getFromUserInput()
işlevinin her ikisi de geçersiz verileri döndürebilir, ancak her durumu kontrol ettiğimi düşünüyorum, bu yüzden benim suçum nerede?
Yani bir ArrayIndexOutOfBoundsException aldınız? Hangi hatta? Olay olayı = olaylar [eventNr]; satır? – aioobe
@aioobe: Evet, dedi ki "ikinci son satırın (dizi erişimi) atar ..." * –
İstisnadaki indeks nedir? – starblue