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:
- Kısa Sınav – 6
- C# İsimsiz Tipler – Anonymous Types
- C# Partial Method Desteği
- C# String’i Title Case’e (Kelimelerin Baş Harfleri Büyük Gerisi Küçük) Çevirme
- C# Obsolete Attribute
- Birkaç Faydalı Extension Method
- C# Rezerve Methodlar – Reserved Methods
- Euler – 3
- Uygulamadan aynı anda bir tane açılmasını garantilemek
- C# ile GMail üzerinden e-posta gönderme
I enjoy your site and I have bookmarked it, Kind Regards
Bernice Johanson
Thanks for making such a valuable blog, sincerely Kobos Mathers.
ç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
}