Ana Sayfa > C#, Programlama > C# Try-Catch-Finally Kod Bloğu Hakkında

C# Try-Catch-Finally Kod Bloğu Hakkında

Geçen aylarda BilgeAdam‘da bir öğrencimin sorduğu soru geldi aklıma. Soru aslında çok basit, fakat farkettim ki, internette bu konu ile ilgili pek kaynak yok. Bari kendim yazayım dedim. Soru şu;

Bir method'dan geriye true/false değer döndürmem lazım.

Method içerisine yazdığım kodları try-catch-finally blokları içerisine almam gerekiyor.

Eğer try içerisinde hata oluşmazsa, geriye true değer döndüreceğim. Hata oluşur ve kod catch bloğuna girerse false değer döndüreceğim.

Ama finally kod bloğunda yapmam gereken işler var. (Açık bağlantıları kapatmak, vs.)

Eğer try-catch içerisinde return ifadesini kullanırsam, finally bloğundaki kod çalışır mı?

Sorunun doğru cevabı için;

Evet, eğer try-catch-finally ifadesinde try-catch içerisinde return ile method sonlandırılırsa bile, finally bloğundaki kod çalıştırılır.

Hemen bir örnek ile açıklayayım;

public bool OrnekMethod
{
	try
	{
		/// Yapılacak işler
		/// Başarılı olursa;
		return true;
	}
	catch (Exception ex)
	{
		/// Hatayı kaydet, vs.
		return false;
	}
	finally
	{
		///Açık kaynakların kapatılması, vs. işleri gerçekleştirilir
	}
}

Yukarıdaki örnek’te, return ifadesi ile method’dan çıkılmadan önce, finally bloğundaki işler gerçekleştirilecektir.


İlgili diğer başlıklar:

  1. Kısa Sınav – 6
  2. C# İsimsiz Tipler – Anonymous Types
  3. Birkaç Faydalı Extension Method
  4. C# Partial Method Desteği
  5. C# Obsolete Attribute


  1. Mart 1st, 2010 at 05:45 | #1

    I enjoy your site and I have bookmarked it, Kind Regards

    Bernice Johanson

  2. Kobos Mathers
    Mayıs 28th, 2010 at 09:07 | #2

    Thanks for making such a valuable blog, sincerely Kobos Mathers.