Wednesday, March 12, 2025

Java Uygulamalarında En Sık Karşılaşılan Exception Türleri ve Test Yöntemleri

Java, geniş kullanım alanı ve platform bağımsızlığı sayesinde en popüler programlama dillerinden biridir. Ancak, Java uygulamaları da diğer yazılımlar gibi çeşitli hatalarla karşılaşabilir. Bu hataların en yaygın türlerinden biri de "exception" olarak adlandırılan istisnai durumlardır. Exception'lar, programın normal akışını bozan ve beklenmedik sonuçlara yol açan olaylardır. Bu makalede, Java uygulamalarında en sık karşılaşılan exception türlerini ve bu exception'ları ortaya çıkarmak için yapılabilecek örnek testleri inceleyeceğiz.

En Sık Karşılaşılan Exception Türleri

  1. NullPointerException:
    • Bir nesnenin null olduğu bir durumda, o nesnenin bir metodunu veya değişkenini çağırmaya çalıştığınızda ortaya çıkar.
    • Örneğin, String str = null; ve sonra str.length() çağırdığınızda bu hatayı alırsınız.
    • Bu hata, Java'da en yaygın karşılaşılan hatalardan biridir.
  2. ArrayIndexOutOfBoundsException:
    • Bir dizinin (array) sınırları dışında bir indekse erişmeye çalıştığınızda ortaya çıkar.
    • Örneğin, 5 elemanlı bir dizide 5. indekse (diziler 0'dan başlar) erişmeye çalıştığınızda bu hatayı alırsınız.
  3. ClassCastException:
    • Bir nesneyi, uyumsuz bir sınıfa dönüştürmeye çalıştığınızda ortaya çıkar.
    • Örneğin, bir Object nesnesini String'e dönüştürmeye çalıştığınızda, eğer nesne gerçekten bir String değilse bu hatayı alırsınız.
  4. IllegalArgumentException:
    • Bir metoda geçersiz bir argüman geçirdiğinizde ortaya çıkar.
    • Örneğin, bir metodun pozitif bir sayı beklediği yerde negatif bir sayı geçirdiğinizde bu hatayı alırsınız.
  5. NumberFormatException:
    • Bir string'i sayısal bir tipe (örneğin, int veya double) dönüştürmeye çalıştığınızda, string sayısal bir değer içermiyorsa ortaya çıkar.
    • Örneğin, "abc" string'ini int'e dönüştürmeye çalıştığınızda bu hatayı alırsınız.
  6. IOException:
    • Giriş/çıkış işlemleri sırasında bir hata oluştuğunda ortaya çıkar.
    • Örneğin, bir dosyayı okurken veya yazarken bir hata oluştuğunda bu hatayı alırsınız.
  7. FileNotFoundException:
    • Bir dosyayı okumaya veya yazmaya çalıştığınızda, dosya bulunamadığında ortaya çıkar.
  8. ArithmeticException:
    • Aritmetik bir hata oluştuğunda ortaya çıkar.
    • Örneğin, sıfıra bölme işlemi yapmaya çalıştığınızda bu hatayı alırsınız.
  9. NoSuchElementException:
    • Bir koleksiyondan (örneğin, bir List veya Set) bir eleman almaya çalıştığınızda, koleksiyon boşsa veya istenen eleman yoksa ortaya çıkar.
  10. SQLException:
    • Veritabanı işlemleri sırasında bir hata oluştuğunda ortaya çıkar.
    • Örneğin, bir SQL sorgusu çalıştırırken bir hata oluştuğunda bu hatayı alırsınız.

Exception'ları Ortaya Çıkarmak İçin Yapılabilecek Örnek Testler

  1. NullPointerException Testi:

    • Bir nesneyi null olarak başlatın.
    • Nesnenin bir metodunu veya değişkenini çağırmaya çalışın.
    • try-catch bloğu kullanarak NullPointerException'ı yakalayın ve hata mesajını yazdırın.
    • Örnek Kod:
     
    public class NullPointerExceptionTest {
        public static void main(String[] args) {
            String str = null;
            try {
                int length = str.length();
                System.out.println("String uzunluğu: " + length);
            } catch (NullPointerException e) {
                System.out.println("NullPointerException yakalandı: " + e.getMessage());
            }
        }
    }

    2. ArrayIndexOutOfBoundsException Testi:

    • Belirli bir boyutta bir dizi oluşturun.
    • Dizinin sınırları dışında bir indekse erişmeye çalışın.
    • try-catch bloğu kullanarak ArrayIndexOutOfBoundsException'ı yakalayın ve hata mesajını yazdırın.
    • Örnek Kod:

    public class ArrayIndexOutOfBoundsExceptionTest {
        public static void main(String[] args) {
            int[] numbers = {1, 2, 3};
            try {
                int number = numbers[3];
                System.out.println("Sayı: " + number);
            } catch (ArrayIndexOutOfBoundsException e) {
                System.out.println("ArrayIndexOutOfBoundsException yakalandı: " + e.getMessage());
            }
        }
    }
     
     
    3. ClassCastException Testi:
    • Bir nesneyi yanlış bir sınıfa dönüştürmeye çalışın.
    • try-catch bloğu kullanarak ClassCastException'ı yakalayın ve hata mesajını yazdırın.
    • Örnek Kod:
     
    public class ClassCastExceptionTest {
        public static void main(String[] args) {
            Object obj = "Merhaba";
            try {
                Integer number = (Integer) obj;
                System.out.println("Sayı: " + number);
            } catch (ClassCastException e) {
                System.out.println("ClassCastException yakalandı: " + e.getMessage());
            }
        }
    }
     
     

    4. NumberFormatException Testi:

    • Sayısal olmayan bir string'i sayıya dönüştürmeye çalışın.
    • try-catch bloğu kullanarak NumberFormatException'ı yakalayın ve hata mesajını yazdırın.
    • Örnek Kod:
     
    public class NumberFormatExceptionTest {
        public static void main(String[] args) {
            String str = "abc";
            try {
                int number = Integer.parseInt(str);
                System.out.println("Sayı: " + number);
            } catch (NumberFormatException e) {
                System.out.println("NumberFormatException yakalandı: " + e.getMessage());
            }
        }
    }

No comments: