avatar
·2 dk okuma
C# ile İstisna (Exception) Yönetimi - (Try...Catch)

C# ile İstisna (Exception) Yönetimi - (Try...Catch)

C# programlama dilinde istisna yönetimi, programın beklenmedik hatalarla veya istisnalarla karşılaştığında nasıl davranacağını belirlemenizi sağlar. Bir programın çalışma zamanında karşılaşabileceği her türlü hata veya beklenmedik durum için bir "yedek plan" oluşturmak gibidir. Bu sayede, programınız hatalar karşısında çökmez ve kullanıcıya anlaşılır hata mesajları gösterebilir.

Temel İstisna Yönetimi: Try-Catch Bloğu

İstisna yönetiminin temeli, try ve catch anahtar kelimeleri ile oluşturulan bloklardır. try bloğu içinde, hata oluşturabilecek kodlar yazılır. Eğer try bloğu içinde bir hata meydana gelirse, program kontrolü hemen catch bloğuna geçer.

try {
    // Hata oluşturabilecek kodlar
    int sayi = 10;
    int sonuc = sayi / 0; // Sıfıra bölme hatası oluşturur.
}
catch (Exception ex) {
    // Hata meydana geldiğinde çalışacak kodlar
    Console.WriteLine("Bir hata oluştu: " + ex.Message);
}

Bu örnekte, sıfıra bölme işlemi bir DivideByZeroException hatası oluşturur. Bu hata, catch bloğu tarafından yakalanır ve kullanıcıya hata mesajı olarak gösterilir.

Hata Türlerine Göre Catch Blokları

Farklı hata türleri için farklı catch blokları tanımlayabilirsiniz. Bu sayede, programınız farklı hatalara farklı tepkiler verebilir:

try {
    // Hata oluşturabilecek kodlar
}
catch (DivideByZeroException ex) {
    // Sıfıra bölme hatasıyla ilgili özel işlemler
    Console.WriteLine("Sıfıra bölme hatası: " + ex.Message);
}
catch (IndexOutOfRangeException ex) {
    // Dizi indeksi hatasıyla ilgili özel işlemler
    Console.WriteLine("İndeks dışı hatası: " + ex.Message);
}
catch (Exception ex) {
    // Diğer tüm hatalar için genel bir işlem
    Console.WriteLine("Genel hata: " + ex.Message);
}

Finally Bloğu

finally bloğu, hata olsun ya da olmasın, try veya catch bloklarından sonra her zaman çalıştırılmak üzere tasarlanmış bir bloktur. Genellikle kaynakların temizlenmesi ve açık dosya bağlantılarının kapatılması gibi işlemler için kullanılır:

try {
    // Hata oluşturabilecek kodlar
}
catch (Exception ex) {
    // Hata meydana geldiğinde çalışacak kodlar
    Console.WriteLine("Hata: " + ex.Message);
}
finally {
    // Hata olsun ya da olmasın çalışacak kodlar
    Console.WriteLine("Finally bloğu çalıştı.");
}

Sonuç

C# programlamada istisna yönetimi, hataların ve beklenmedik durumların programınızı çökertmesini önlemek için hayati öneme sahiptir. try-catch ve finally blokları, programınızın daha kararlı ve güvenilir çalışmasını sağlamak için kullanılır. Bu yapılar sayesinde, hatalar programın akışını kesmeden uygun bir şekilde yönetilebilir ve kullanıcılara daha iyi bir deneyim sunulabilir.