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

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

24 Ocak 2010

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. 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.

  3. yusuf
    Mart 25th, 2011 at 14:04 | #3

    çok basit yav :S bak class form1 in altına bi değişken koy şu şekilde

    boolean degisken;

    button click olayına şöyle yap örn

    try
    {
    //hatasız çalışıyor
    degisken = true
    }
    catch
    {
    //hatalı
    degisken = false
    }