Yazılım geliştirme süreçlerinde hata yönetimi, yalnızca kullanıcı deneyimini değil, aynı zamanda kodun sürdürülebilirliğini de doğrudan etkiler. C#’ta geleneksel try-catch
yapısının ötesine geçerek, Action delegeleri ile daha temiz, yeniden kullanılabilir ve okunabilir bir hata yönetimi yaklaşımı geliştirmek mümkündür.
Bu yazıda, özel exception sınıfları ve Action delegasyonu kullanarak nasıl profesyonel bir hata yönetimi sağlayabileceğinizi öğreneceksiniz.
🎯 Neden Action Delegesi Kullanmalı?
Genellikle her hata durumunda try-catch
kullanmak kodunuzu dağınık ve tekrarlı hale getirebilir. Action delegeleri sayesinde:
-
try-catch
blokları merkezi bir yerde tanımlanabilir. -
Hata yönetimi fonksiyonel bir yaklaşımla soyutlanabilir.
-
Kod daha okunabilir ve bakımı kolay olur.
🛠️ Örnek Senaryo: Yetersiz Bakiye Durumu
1. Özel Exception Sınıfı Tanımı
public class InsufficientBalanceException : Exception
{
public decimal Balance { get; }
public InsufficientBalanceException(decimal balance)
: base("Yetersiz bakiye!")
{
Balance = balance;
}
}
Bu özel sınıf, hem hata mesajını hem de kalan bakiyeyi taşır.
2. Hata Yönetimi İçin Action Delegesi
public class HataYoneticisi
{
public static void HataYakala(Action action)
{
try
{
action.Invoke();
}
catch (InsufficientBalanceException ex)
{
Console.WriteLine($"{ex.Message} Mevcut bakiye: {ex.Balance} TL");
}
catch (Exception ex)
{
Console.WriteLine("Beklenmeyen bir hata oluştu: " + ex.Message);
}
}
}
Burada hata yönetimi soyutlanarak farklı işlemler için merkezi bir kontrol mekanizması sağlanıyor.
3. Kullanım: Para Çekme İşlemi
decimal bakiye = 100;
HataYoneticisi.HataYakala(() =>
{
decimal cekilecekTutar = 150;
if (cekilecekTutar > bakiye)
throw new InsufficientBalanceException(bakiye);
bakiye -= cekilecekTutar;
Console.WriteLine($"İşlem başarılı! Kalan bakiye: {bakiye} TL");
});
Çıktı:
Yetersiz bakiye! Mevcut bakiye: 100 TL
🌟 Avantajları
-
🧹 Kod Temizliği: Tek bir yerde toplanan hata yönetimi sayesinde kod dağınıklığı önlenir.
-
🔄 Yeniden Kullanılabilirlik: Hata kontrol mekanizması farklı işlemlerde kolayca kullanılabilir.
-
💬 Anlamlı Geri Bildirimler: Kullanıcılar için spesifik ve açıklayıcı hata mesajları sağlanır.
-
🛡️ Güvenli İşlem Akışı: Kritik işlemlerde beklenmeyen hatalar güvenle yakalanır.
✅ Sonuç
C#’ta Action delegeleriyle hata yönetimi, özellikle büyük ve kompleks projelerde kodun kalitesini artırmak, bakımı kolaylaştırmak ve kullanıcı deneyimini iyileştirmek için oldukça güçlü bir yöntemdir. Bu yapı sayesinde sadece hataları değil, aynı zamanda geliştirici olarak kendi zamanınızı da yönetmiş olursunuz.