Javada try catch Kullanımı

Javada İstisna Yakalama Mantığı

Çalışma zamanında beklenmeyen bir hata oluşması durumuna exception; bir istisnanın yaratılıp program içerisine atılması işlemine throwing; oluşan bir istisnayı yakalayıp problemin çözülmesi adına belirtilen ifadeleri çalıştırma  işlemine catching; istisna ile uğraşan kod bloğuna catch clause (catch block); istisnanın oluştuğu noktada kontrol sağlayan bir dizi metot çağırma işlemine stack trace denir.

İstisnalar için izlenen kod, bir try bloğu içerisinde tutulur. Bu bloğun anlamı ‘ bu kodu çalıştır ve istisna oluşacak mı gör ‘ şeklinde ifade edilebilir. Eğer try bloğu içerisinde bir istisna meydana gelirse, bir istisna nesnesi yaratılır ve kod içerisine atılır. Programımız bu istisnayı catch ifadesi ile yakalayabilir ve işleyebilir. Her catch bloğu ne tipte bir istisnayı yakalayabileceğini belirler ve içerisinde o tipte istisnayı işlemek üzere bir istisna işleyici bulunur. Eğer programcı bir istisnayı bizzat atmak istiyorsa  throw ifadesini kullanacaktır. Bir metottan atılan her istisna bir throws kalıbı ile belirtilir. Son olarak finally ile belirtilen bloğun içindeki kod, istisna oluşsun oluşmasın kesinlikle çalışması gereken koddur. Yani bazı kodların her ne olursa olsun çalışması gerekiyorsa finally bloğunun içinde yer almalıdır.

  Matematiksel İstisna yakalayıcısı

package try_catch1;

public class Main {

    public static void main(String[] args) {

        try {

        int a = 42 / 0;

        } catch (ArithmeticException Hata) {

            System.out.print(" Hata oluştu :" + Hata.getMessage());

        }
    }
}


  Dizi indeks İstisna yakalayıcısı

package try_catch1;

public class Main {

    public static void main(String[] args) {

        try {

        String Gunler[] = new String[3];

        System.out.println(Gunler[5]);

        } catch (ArrayIndexOutOfBoundsException HataDurumu) {
           System.out.println(HataDurumu.getMessage());
        }
    }
}

 

  Çoklu İstisna yakalayıcılar

package try_catch1;

public class Main {

    public static void main(String[] args) {

        try {
            int array[] = new int[100];
            //array[100] = 100; //1. Hata
            //array[5]=40/0; //2. Hata
            //sdfs //3. Hata

        } catch (ArrayIndexOutOfBoundsException e) {
            System.out.println("Dizi elemanı fazla girildi");
        } catch (ArithmeticException e) {
            System.out.println("Matematiksel Hata: " + e);
        } catch (Exception e) {
            System.out.println("Bir Hata oluştu: " + e);
        }
 
    }
}
 

 

 

package try_catch1;

import javax.swing.JOptionPane;

public class Main {

    public static void main(String[] args) {


        int a=0, b;

        try {
                //a string olursa hata oluşur
                a = Integer.parseInt(JOptionPane.showInputDialog("lütfen integer bir sayı giriniz"));

                //a 0 olursa bölme hatası oluşur
                b=100 / a;
        }
        catch (ArithmeticException e){
            JOptionPane.showMessageDialog(null, "Girilen değer  0 olunca bölünme hatası meydana geldiğinden işlem gerceklestirilmiyor");
            //JOptionPane.showMessageDialog(null, e.getMessage());  //Hatanın mesajını yazar
            //JOptionPane.showMessageDialog(null, e.getStackTrace()); //istisnaya kadar ki çağırma yığınlarını döndürür
        }
        catch (NumberFormatException e){
            JOptionPane.showMessageDialog(null, "Girilen değer rakam olmalı");
        }
    }
}
 

 

  İç İçe  yazılmış İstisna yakalayıcılar

 

package try_catch1;

import javax.swing.JOptionPane;

public class Main {

    public static void main(String[] args) {

        try {
           
            int array[] = new int[100];
            //array[100]=1;

            try {
                //int i = 5 / 0;

                try {
                    hebele hubele;
                } catch (RuntimeException Hata) {
                    System.out.println("Saçmalanmış");
                }
            } catch (ArithmeticException Hata) {
                System.out.println("0 a bölme hatası");
            }

        } catch (ArrayIndexOutOfBoundsException e) {
            System.out.println("Dizi elemanı fazla girildi");
        }
    }
}

 

 

 

 

Yorumunuzu Ekleyin


Yükleniyor...
Yükleniyor...