Olusturdugumuz yazilimlarda en önemli nokta, yazilimin kusursuz olarak çalismasidir. Diger bir deyisle hatalardan arindirilmis olarak çalismasidir. Tanimladiginiz bir degiskenin, üst siniri asmasi, tür uyusmazligi vb. islemler hiç hos olmayan hata mesajlari verecektir. Bu amaçla olusabilecek hatalara karsi yazilimimizi güvenli hale getirmek gerekmektedir. Bunu saglayabilmek için de Java içerisinde tanimli hata kontrol bloklari ve siniflari yer almaktadir.
Örneğin 3 elemanlı bir dizinin 4. elemanına erişmeye çalışalım
public static void main(String[] args) {
int[] elemanlar = {0,1,2};
for(int i = 0; i < 10; i++){
System.out.println(elemanlar[i]);
}
}
|
Çal
ıştırdığımızda aşağıdaki hata mesajını alacağız.
ıştırdığımızda aşağıdaki hata mesajını alacağız.
Peki bu hatayi nasil önleyecegiz?
public static void main(String[] args) {
try
{
int[] elemanlar = {0,1,2};
for(int i = 0; i < 10; i++){
System.out.println(elemanlar[i]);
}
}
catch(Exception hata){
System.out.println("Hata : " + hata.toString());
}
}
|
Kodda da görüldügü gibi, çalismasini istedigimiz kodlari try blogunun içine yerlestiriyoruz. Herhangi bir hata ile karsilastigimiz taktirde yapmasini istediklerimizi de catch blogu içerisine yerlestiriyoruz.
Projemizi çalıştıralım.
Artık hatayı kontrolümüz altına alabiliyoruz. Hata sınıfımızın ArrayIndexOutOfBoundsException olarak uyarı vermektedir. Bu sebeple bu hatayı yakalamak için kodumuzda catch bloğundaki Exception yerine ArrayIndexOutOfBoundsException yerleştirebiliriz.
public static void main(String[] args) {
try
{
int[] elemanlar = {0,1,2};
for(int i = 0; i < 10; i++){
System.out.println(elemanlar[i]);
}
}
catch(ArrayIndexOutOfBoundsException hata){
System.out.println("Hata : " + hata.toString());
}
}
|
Çalıştırdığımızda aşağıdaki gibi (aynı hata sonucu) ekran alacağız.
try-catch işlemleri tamamlandıktan sonra yapılması gereken işlemler varsa bunları da finally bloğunda belirliyoruz.
public static void main(String[] args) {
try
{
int[] elemanlar = {0,1,2};
for(int i = 0; i < 10; i++){
System.out.println(elemanlar[i]);
}
}
catch(ArrayIndexOutOfBoundsException hata){
System.out.println("Hata : " + hata.toString());
}
finally
{
System.out.println("Bitti");
}
}
|
Veysel Uğur KIZMAZ