CodeBlanks Logo Icon CodeBlanks

Hata yönetimi

try/catch ile geçersiz girdileri yakalarsın.

try/catch nedir?

try/catch, bir kod parçası hata fırlattığında programın çökmesini önler. Hata try bloğunda oluşursa catch bloğu çalışır.

try {
    int sonuc = divide(10, 0);
} catch (ArithmeticException e) {
    System.out.println("Sıfıra bölme");
}

Burada divide(10, 0) hata fırlatırsa catch yakalar ve ekrana mesaj yazar. Program kesintisiz devam eder.

Bu, sıfır kontrolü yapmaktan farklı bir yaklaşımdır: hatayı önceden önlemek yerine oluştuğunda yakalar.

finally nedir?

try/catch'in yanına bir finally bloğu eklenebilir. finally hata olsa da olmasa da her zaman çalışır.

try {
    // kod
} catch (Exception e) {
    // hata
} finally {
    // temizlik - her zaman çalışır
}

Genellikle dosya kapatma, bağlantı sonlandırma gibi temizlik işleri için kullanılır. Hesap makinesinde şimdilik kullanmayacağız, ama bilmen iyi olur.

Uygulama try/catch ile divide çağrısı

Mevcut sınıfta main içindeki divide(10, 2) çağrısını try bloğuna al. Bir catch (ArithmeticException e) bloğu ekle ve println ile Sıfıra bölme yazdır. Diğer çağrılar korunsun.

Başlangıç kodu

Main.java
public class Main {
    static int add(int a, int b) {
        return a + b;
    }
    static int subtract(int a, int b) {
        return a - b;
    }
    static int multiply(int a, int b) {
        return a * b;
    }
    static int divide(int a, int b) {
        if (b == 0) {
            return 0;
        }
        return a / b;
    }
    public static void main(String[] args) {
        System.out.println("Hesap makinesi");
        System.out.println(add(5, 3));
        System.out.println(subtract(5, 3));
        System.out.println(multiply(5, 3));
        System.out.println(divide(10, 2));
    }
}

Örnek çözüm

Main.java
public class Main {
    static int add(int a, int b) {
        return a + b;
    }
    static int subtract(int a, int b) {
        return a - b;
    }
    static int multiply(int a, int b) {
        return a * b;
    }
    static int divide(int a, int b) {
        if (b == 0) {
            return 0;
        }
        return a / b;
    }
    public static void main(String[] args) {
        System.out.println("Hesap makinesi");
        System.out.println(add(5, 3));
        System.out.println(subtract(5, 3));
        System.out.println(multiply(5, 3));
        try {
            System.out.println(divide(10, 2));
        } catch (ArithmeticException e) {
            System.out.println("Sıfıra bölme");
        }
    }
}

Beklenen çıktı

Hesap makinesi
8
2
15
5

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 try/catch ne yapar?

  • Hata üretir
  • Hataları yakalar Doğru cevap
  • Hata fırlatır
  • Kodu yavaşlatır

Açıklama: try/catch hataları yakalar ve çökmeyi önler.

2 İstisna kavramlarını eşleştir

Kavram Anlamı
try Dene
catch Yakala
ArithmeticException Matematik hatası
Exception Temel istisna

3 catch bloğunu tamamla

Soru
try { } catch (____ e) { System.out.println("Hata"); }
Cevap
try { } catch (ArithmeticException e) { System.out.println("Hata"); }

Açıklama: catch (ArithmeticException e) matematik hatasını yakalar.

Başlangıç bölümündeki tüm dersler