CodeBlanks Logo Icon CodeBlanks

throw

throw ile istisna fırlatmayı öğrenirsin.

throw ile istisna fırlat

throw anahtar sözcüğü bilinçli olarak istisna fırlatır. Bir koşul bozulduğunda programı durdurmak ve çağıranı uyarmak için kullanılır.

int age = -5;
if (age < 0) {
  throw new IllegalArgumentException("Negatif yaş");
}

new IllegalArgumentException(...) bir istisna nesnesi yaratır; throw onu fırlatır. İstisna yakalanmazsa program çöker ve yığın izi basılır. Koşul kontrolünden sonra throw yazmak, geçersiz girdiyi erken durdurmanın temiz yoludur.

İstisna yakala ve yeniden fırlat

Bazen istisnayı yakalayıp işledikten sonra yeniden fırlatmak gerekir. throw ile yakalanan Exception nesnesini tekrar atarsın; böylece üst katman da haberdar olur.

try {
  int r = 10 / 0;
} catch (ArithmeticException e) {
  System.out.println("Loglandı");
  throw e;
}

Yeniden fırlatma, loglama veya geçici düzeltmeden sonra hatanın yayılmasını sağlar. Ama dikkat: finally varsa o yine de çalışır. Bu düzenek, hata yönetimini katmanlara bölmek için kullanışlıdır.

Uygulama Negatif yaş hatası

int age = -5; tanımla. if (age < 0) ile throw new IllegalArgumentException("Negatif yaş") fırlat. Hepsini try içine al; IllegalArgumentException yakala ve Hata: ile getMessage() yazdır.

Başlangıç kodu

Main.java
public class Main {
  public static void main(String[] args) {
    int age = -5;
    // koşulu denetle, hata fırlat, yakala, mesaj yaz
  }
}

Örnek çözüm

Main.java
try {
  if (age < 0) {
    throw new IllegalArgumentException("Negatif yaş");
  }
} catch (IllegalArgumentException e) {
  System.out.println("Hata: " + e.getMessage());
}

Beklenen çıktı

Hata: Negatif yaş

Soru ve cevaplar

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

1 İfadeyi amacıyla eşleştir

Kavram Anlamı
throw İstisna fırlatır
new IllegalArgumentException Nesne yaratır
if (age < 0) Koşul kontrolü
getMessage() Açıklama verir

2 throw new IllegalArgumentException("X") ne yapar?

  • Bir değişken tanımlar
  • Bir istisna nesnesi yaratıp fırlatır Doğru cevap
  • Bir yöntem çağırır
  • Bir döngü başlatır

Açıklama: new ile istisna nesnesi yaratılır, throw ile fırlatılır.

3 Negatif yaş için fırlat

Soru
if (age < 0) {
  ____ new IllegalArgumentException("Negatif yaş");
}
Cevap
if (age < 0) {
  throw new IllegalArgumentException("Negatif yaş");
}

Açıklama: throw new ile istisna yaratılıp fırlatılır.

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