Önceki Ders 8 / 10

⚠️ Hata Yönetimi

🎮 Ortaokul Bu derste: Oyunda beklenmedik durumları yönet!
📚 Lise Bu derste: Result ve Option ile güvenli kod
🎓 Üniversite Bu derste: Custom errors, anyhow/thiserror ve recovery patterns

🎮 Ya Olmazsa?

Oyunlarda her zaman bir şeyler ters gidebilir! Anahtar yoksa kapı açılmaz, can biterse oyun biter...

📝 Örnek 1: Hazine Arama

🔍 hazine_ara.berk
// Belki (Option) - Ya varsa ya yoksa!
fonksiyon sandik_ac(konum: tamsayı) -> Belki[metin] {
    esle konum yap
        1 => Bazi("💎 Elmas buldun!"),
        2 => Bazi("💰 Altın buldun!"),
        3 => Bazi("🗝️ Anahtar buldun!"),
        _ => Hic,  // Boş sandık!
    son
}

fonksiyon ana() {
    yazdir("🗺️ HAZİNE AVI!\n");
    
    // 5 sandık kontrol et
    icin i in 1..6 {
        yazdir("📦 Sandık #{} açılıyor...", i);
        
        esle sandik_ac(i) yap
            Bazi(hazine) => yazdir("   ✅ {}\n", hazine),
            Hic => yazdir("   ❌ Boş sandık!\n"),
        son
    }
}

📝 Örnek 2: Boss Saldırısı

👹 boss_attack.berk
// Sonuç (Result) - Ya başarılı ya başarısız!
fonksiyon saldir(oyuncu_guc: tamsayı, boss_kalkan: tamsayı) -> Sonuc[tamsayı, metin] {
    eğer oyuncu_guc <= 0 yap
        don Hata("💀 Gücün yetmiyor!");
    son
    
    eğer boss_kalkan > oyuncu_guc yap
        don Hata("🛡️ Kalkan çok güçlü!");
    son
    
    değişken hasar = oyuncu_guc - boss_kalkan;
    don Tamam(hasar);
}

fonksiyon ana() {
    yazdir("⚔️ BOSS SAVAŞI\n");
    
    // Deneme 1: Zayıf saldırı
    esle saldir(10, 20) yap
        Tamam(hasar) => yazdir("💥 {} hasar verdin!", hasar),
        Hata(mesaj) => yazdir("❌ {}", mesaj),
    son
    
    // Deneme 2: Güçlü saldırı
    esle saldir(50, 20) yap
        Tamam(hasar) => yazdir("💥 {} hasar verdin!", hasar),
        Hata(mesaj) => yazdir("❌ {}", mesaj),
    son
}

🎯 Hatırla!

  • Belki/Option = Var mı yok mu?
  • Sonuc/Result = Başarılı mı hatalı mı?

📌 Özet