Uygulamamisda hesap disi bazi seyler oldugunda uygulamamizin aniden kapanmak zorunda kalmamasi için Exception sinifindan yararlaniriz.
Basit bir örnekle görmeye çalisalim:
public class IstisnaYakalama1 { public static void main(String args[]) { int sayilar[] = {1, 2, 3, 4}; for (int i=0 ; i < 5 ; i++) { System.out.println("-> " + sayilar[i]); } System.out.println("Bitti"); } } |
Eger bu kodlari derleyip çalistirmak istersek, söyle bir sonuç ve hata iletisi aliriz:
-> 1
-> 2
-> 3
-> 4
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
Bunun sebebi sayilar[] adli dizimizden 5’inci, yani olmayan bir elemani cagiriyor olmamizdir.
Simdi bu uygulamamizi böyle bir duruma hazirlikli hâle getirelim:
public class IstisnaYakalama { public static void main(String arg[]) { int sayilar[] = {1,2,3,4}; for (int i=0 ; i < 5 ; i++) { try { System.out.println("-> " + sayilar[i]); } catch (Exception ex) { System.out.println("Hata Yakalandi "+ ex); } } System.out.println("bitti"); } } |
Uygulamamiz bu sekilde çalisip normal bir sekilde sonlanacaktir. Program sonucu ise söyle olur:
run-single:
-> 1
-> 2
-> 3
-> 4
Hata Olustu java.lang.ArrayIndexOutOfBoundsException: 4
bitti
BUILD SUCCESSFUL (total time: 0 seconds)
Istisnai durum nerede etkisiz hâle getiriliyor?
try { // Istisnaya sebebiyet verebilecek olan kod System.out.println("-> " + sayilar[i]); } catch(Exception ex) { //Eger Exception tipindeki istisna burada karsilaniyor System.out.println("Hata Yakalandi "+ ex); } |
Exception(String message)
java.lang.ArrayIndexOutOfBoundsException: ifadesi buradan geliyor.
Exception sinifinin diger yapilandiricilari ise söyle:
Exception()
Exception(String message, Throwable cause)
Exception(Throwable cause)
Finaly blogu
Eger herseye ragmen pgrogramimizin belirli bir kod blogunu çalistirmasini istiyorsak bunu finaly bloguna yaziyoruz.
public static void main(String arg[])
{
int sayilar[] = {1,2,3,4};
for (int i=0 ; i < 5 ; i++)
{
try {
System.out.println("-> " + sayilar[i]);
}
catch (Exception ex)
{
System.out.println("Hata Yakalandi "+ ex);
}
finally
{
System.out.println("burasi finaly blogu");
}
System.out.println("bitti");
}
}
Çok te?ekkür ederim hatamy bulmamy sa?ladynyz
Merhaba kisa ve cok rahat basa dusulen tarzda yazmissiniz.tesekkurler.
Allah razi olsun.Kisa ve öz.
Merhaba güzel ve sade bir anlatim icin tesekkürler.