CodeBlanks Logo Icon CodeBlanks

try/catch

try/catch ile istisna yakalamayı öğrenirsin.

try/catch ile hata yakala

Bir istisna (exception) programın normal akışını bozan beklenmedik durumdur. try bloğu hataya açık kodu sarar; catch ise hatayı yakalayıp yönetir.

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

İstisna fırlatınca try bloğu kesilir ve uygun catch devreye girer. Yakalanmazsa program çöker. catch parantezindeki tür, yakalanacak istisnayı belirler. e değişkeni istisna ayrıntılarını taşır.

catch parametresi ve türü

catch parantezindeki tür, hangi istisnaların yakalanacağını belirler. ArithmeticException yalnızca aritmetik hataları yakalar; başka tür gelirse catch devreye girmez.

catch (ArithmeticException e) {
  System.out.println(e.getMessage());
}

getMessage() istisnanın kısa açıklamasını döndürür. e değişkeninin adı serbesttir; ex veya err de yazılabilir. Türü genel tutmak (ör. Exception) daha çok hatayı yakalar ama ayrıntıyı kaybeder; bu yüzden olabildiğince özel tür seçmek iyidir.

Uygulama Sıfıra bölmeyi yakala

int a = 10; int b = 0; değerlerini böl. try içine al; ArithmeticException yakala ve Sıfıra bölme yazdır.

Başlangıç kodu

Main.java
public class Main {
  public static void main(String[] args) {
    int a = 10;
    int b = 0;
    // bölme işlemini dene, hatayı yakala, mesaj yaz
  }
}

Örnek çözüm

Main.java
try {
  int result = a / b;
  System.out.println(result);
} catch (ArithmeticException e) {
  System.out.println("Sıfıra bölme");
}

Beklenen çıktı

Sıfıra bölme

Soru ve cevaplar

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

1 try bloğunda istisna fırlatıldığında ne olur?

  • try bloğu devam eder
  • Program anında çöker
  • Hiçbir şey olmaz
  • Uygun catch bloğu devreye girer Doğru cevap

Açıklama: istisna fırlatılınca try kesilir ve türü eşleşen catch çalışır.

2 catch bloğunu tamamla

Soru
try {
  int r = 10 / 0;
} ____ (ArithmeticException e) {
  System.out.println("Hata");
}
Cevap
try {
  int r = 10 / 0;
} catch (ArithmeticException e) {
  System.out.println("Hata");
}

Açıklama: catch bloğu try'dan sonra gelir ve istisnayı yakalar.

3 İstisnayı senaryoyla eşleştir

Kavram Anlamı
ArithmeticException Sıfıra bölme
NullPointerException null nesne
ArrayIndexOutOfBoundsException Dışında indeks
NumberFormatException Geçersiz sayı

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