CodeBlanks Logo Icon CodeBlanks

Özet - İstisna temelleri

try/catch/finally ve throw'u birleştirerek bir banka hesabı sınıfı yazarsın.

Özet - İstisna temelleri

Bu grupta try/catch, finally, throw, istisna hiyerarşisini ve çoklu catch'i öğrendin. Artık bir Account sınıfı yazıp withdraw yönteminde bakiye denetimi ile throw kullanabilir, çağıranda try/catch/finally ile yönetebilirsin.

Bu özet dersi 5 adımdan oluşur ve bir code görevi içerir. Banka hesabı örneği, öğrendiklerinin hepsini bir araya getirir.

Uygulama Banka hesabı

Bir Account sınıfı yaz: double balance alanı, Account(double b) yapıcısı ve void withdraw(double amount) yöntemi olsun. withdraw, amount > balance ise throw new IllegalStateException("Yetersiz bakiye") fırlatsın. main'de Account acc = new Account(100); ile acc.withdraw(150) çağır; try/catch ile IllegalStateException yakala ve Hata: ile getMessage() yazdır; finally ile İşlem tamam yazdır.

Başlangıç kodu

Main.java
public class Main {
  public static void main(String[] args) {
    Account acc = new Account(100);
    // withdraw çağır, try/catch/finally ile yönet
  }
}

class Account {
  double balance;
  Account(double b) { this.balance = b; }
  // withdraw yöntemini yaz: amount > balance ise fırlat
}

Örnek çözüm

Main.java
// Account içinde:
void withdraw(double amount) {
  if (amount > balance) {
    throw new IllegalStateException("Yetersiz bakiye");
  }
  balance -= amount;
}
// main içinde:
try {
  acc.withdraw(150);
} catch (IllegalStateException e) {
  System.out.println("Hata: " + e.getMessage());
} finally {
  System.out.println("İşlem tamam");
}

Beklenen çıktı

Hata: Yetersiz bakiye
İşlem tamam

Soru ve cevaplar

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

1 finally bloğu ne zaman çalışır?

  • Yalnızca istisna olunca
  • Yalnızca return olunca
  • Her zaman Doğru cevap
  • Yalnızca istisna olmayınca

Açıklama: finally her durumda çalışır; istisna çıksa da çıkmasa da.

2 Yetersiz bakiye fırlat

Soru
if (amount > balance) {
  throw new IllegalStateException("____");
}
Cevap
if (amount > balance) {
  throw new IllegalStateException("Yetersiz bakiye");
}

Açıklama: IllegalStateException'ın mesajı Türkçe karakterli yazılır.

3 Anahtar sözcüğü amacıyla eşleştir

Kavram Anlamı
try Riskli kod
catch Hata yakala
finally Temizlik
throw İstisna fırlat

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