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.
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.
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.
public static void checkScore(int score) {
if (score < 0 || score > 100) {
throw new IllegalArgumentException("Score must be between 0 and 100");
}
}Kendin dene
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.
İ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
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.
İpucu göster
`try { ... } catch (NumberFormatException e) { ... } sonunda { ... }` blok yapısını yazın.
3 denemeden sonra çözüm mevcut
Sağlanan yaş 18'den küçükse 'Reşit Olmayan' mesajını içeren bir IllegalArgumentException oluşturarak checkAge yöntemini tamamlayın.
İ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