Ana içeriğe geç
Modül 5 · Ders 1 ders 2Kurstaki 9/14~12 min
Modül dersleri (1/2)

Try-Catch Blokları

Java'da çalışma zamanı hataları İstisnalar kullanılarak işlenir. İstisna yönetimi, anormal koşulları yakalamamıza ve programın çökmesini önlememize olanak tanır.

try-catch yapısı

Olası bir istisnayı ele almak için riskli kodu try bloğunun içine alıyoruz. try bloğunun içinde bir hata oluşursa, JVM bunu yürütmeyi durdurur ve istisnayı işlemek için eşleşen bir catch bloğu arar.

Java
try {
    int result = 10 / 0; // Generates ArithmeticException
    System.out.println("This will not be printed");
} catch (ArithmeticException e) {
    System.out.println("Arithmetic error occurred: " + e.getMessage());
}

finally bloğu

finally bloğu isteğe bağlıdır ve bir istisnanın atılıp atılmadığına bakılmaksızın her zaman yürütülür. Kaynakları serbest bırakmak veya temizleme işlemlerini gerçekleştirmek için idealdir.

Java
try {
    System.out.println("Executing logic");
} catch (Exception e) {
    System.out.println("Error");
} finally {
    System.out.println("This block is always executed");
}

İstisnaları Atma: throw

throw anahtar sözcüğünü ve ardından bir istisna sınıfının yeni bir örneğini kullanarak kasıtlı olarak bir istisna atabiliriz.

Java
public static void checkScore(int score) {
    if (score < 0 || score > 100) {
        throw new IllegalArgumentException("Score must be between 0 and 100");
    }
}

Kendin dene

Egzersiz#java.m5.l1.e1
Denemeler: 0Yükleniyor…

a / b bölümünden kaynaklanan potansiyel bir ArithmeticException'ı işlemek için bir try-catch bloğu ekleyerek kodu tamamlayın. Bir hata durumunda 'Hata: sıfıra bölme' yazdırın.

Düzenleyici yükleniyor…
İpucu göster

Bölme işlemini bir "try" bloğunun içine ekleyin ve "ArithmeticException"ı yakalayarak gerekli mesajı yazdırın.

3 denemeden sonra çözüm mevcut

Egzersiz#java.m5.l1.e2
Denemeler: 0Yükleniyor…

Try-catch-finally bloğunu uygulamak için kodu tamamlayın. Try bloğunda, Integer.parseInt'i kullanarak str dizesini bir tamsayıya dönüştürmeyi deneyin. Catch bloğunda NumberFormatException'ı engelleyin ve 'Geçersiz sayı'yı yazdırın. Son blokta 'Sonunda' yazdırın.

Düzenleyici yükleniyor…
İpucu göster

`try { ... } catch (NumberFormatException e) { ... } sonunda { ... }` blok yapısını yazın.

3 denemeden sonra çözüm mevcut

Egzersiz#java.m5.l1.e3
Denemeler: 0Yükleniyor…

Sağlanan yaş 18'den küçükse 'Reşit Olmayan' mesajını içeren bir IllegalArgumentException oluşturarak checkAge yöntemini tamamlayın.

Düzenleyici yükleniyor…
İpucu göster

İstisnayı başlatmak ve atmak için "if (age < 18)" ve "throw new" anahtar sözcüklerini kullanın.

3 denemeden sonra çözüm mevcut