ArrayIndexOutOfBoundsException Nedir?
```
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 5 out of bounds for length 5
```
Ali, şaşkınlıkla bu mesajı inceledi. Hata mesajı ona şunu söylüyordu: "Benim dizimde 5 eleman var, ama sen dizinin 5. indeksine erişmeye çalıştın!" Burada kritik olan şey, dizilerin sıfırdan başlamasıydı. Yani, dizinin boyutunu tam olarak anlayabilmek için, başlangıç indeksinin her zaman 0 olduğunu hatırlamak gerekir.
Neden Bu Hata Meydana Gelir?
```java
int[] arr = new int[5]; // Dizi boyutu 5
System.out.println(arr[5]); // Bu hatalı erişim
```
Bu örnekte, dizinin geçerli indeksleri 0'dan 4'e kadar olan aralıktadır. Ancak 5. indeks (yani altıncı eleman) yoktur, dolayısıyla bu erişim geçersizdir ve ArrayIndexOutOfBoundsException hatasına yol açar.
Hata Çözümü: Nasıl Engellenir?
1. Dizi Boyutunu Kontrol Et
Diziyi oluşturduktan sonra, her zaman boyutunu kontrol ettiğinizden emin olun. Eğer dizinin son elemanına erişmek istiyorsanız, indeksin dizinin boyutundan küçük olmasına dikkat edin.
```java
if (index < arr.length) {
System.out.println(arr[index]);
} else {
System.out.println("Geçersiz indeks!");
}
```
2. Diziyi Dinamik Yapılarla Değiştir
Eğer dizilerle uğraşmak sıkıntılıysa, ArrayList gibi dinamik yapılar kullanabilirsiniz. Bu yapılar, boyutları otomatik olarak ayarlayabilir.
```java
ArrayList
list.add(10);
list.add(20);
System.out.println(list.get(1)); // Bu geçerli bir erişim
```
3. Hata Kontrolleri Yapın
Her zaman dizilere erişmeden önce, indeksin geçerli olup olmadığını kontrol edin. Bu, hataların önüne geçer.