Özet - İstisna temelleri
- Java kursu
- Başlangıç
- Ders 111/116
- 5 dk
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
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
// 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
if (amount > balance) {
throw new IllegalStateException("____");
}
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 |