Try Finally, Try Catch Finally

15 views
Skip to first unread message

R€N@TO

unread,
Feb 13, 2011, 6:52:06 AM2/13/11
to Kariyer12 - C# Yazılımcılar Cemiyeti
try finally:
İstisna takibinde Try finally bloğunun özelliği; hata ortaya çıksa da
çıkmasa da bu finally bloğunun çalışıyor olmasıdır. Try{} bloğu
içerisinde bir istisna ortaya çıktığında kodumuz aynen try catch
ifadesinde olduğu gibi hatanın ortaya çıkmış olduğu noktadan sonraki
kodlar çalışmadan finally bloğuna geçilir. Catch ifadesinden farklı
olarak hatanın çeşidinin tespiti mümkün değildir. Finally bloğu
programlarımızda kullanım sebebi try {} içerisinde yaratmış olduğumuz
nesnelerin sonlandırılması veya değişkenlerin son değerlerinin
belirlenmesi gereken durumlarda kullanılır.
using System;
namespace Exception1
{
class Istisnalar
{
[STAThread]
static void Main(string[] argös)
{
int sayi1 = 25;
int sayi2 = 0;
try
{
int sonuc = 0; sonuc = sayi1 / sayi2; //
Sıfıra bölünme hatası
Console.WriteLine("Hiç Bir Hata Oluşmadı");
}
finally
{
Console.WriteLine(e.Message);
}

}
}
}

Bu kullanıma bir örnek vermemiz gerekirse bir veritabanı bağlantısı
yapıp geriye bazı değerler döndüren bir fonksiyon olsun. Bu fonksiyon
içerisinde veritabanı bağlantısı gerçekleştirilip gerekli data çekim
işlemleri meydana geldikten sonra bağlantının kesilmesi
gerçekleştirilecektir.

using System;
namespace Exception1
{
class Istisnalar
{
[STAThread]
static void Main(string[] argös)
{
DataAl();
}
public string DataAl()
{
string bilgi;
Baglan();
try
{
bilgi = getdata();
}
finally
{
baglantiyikes();
return bilgi;
}
}
}
}

Örneğimizde benzer bir yapı bulunmaktadır. Yukarıdaki gibi bir yapı
veritabanı bağlantısının kesilecek olması kesindir. Bu yöntemle fazla
kaynak kullanımı gibi etkilerden kurtulmamız mümkündür.

try catch finally:
try catch ve try finally ifadelerinin ve kullanım yeteneklerinin
birleşerek ortak bir ifade halini aldığı kullanıma try catch finally
diyoruz. Bu yöntem kullanılarak hatalar izlenip ayıklanabilmekte;
bununla birlikte finally bloğunu yetenekleri kullanılarak kaynak
kullanımı denetim altında alınabilmektedir.
using System;
namespace Exception1
{
class Istisnalar
{
[STAThread]
static void Main(string[] argös)
{
DataAl();
}
public string DataAl()
{
string bilgi;
Baglan();
try
{
bilgi = getdata();
}
catch(Exception e)
{
bilgi = e.Message +" Hatası Oluştu";
}
finally
{
baglantiyikes();
return bilgi;
}
}
}
}



Reply all
Reply to author
Forward
0 new messages