Uzun bir ara verdik. Vakit bulduğum için küçük bir makale yayınlayayım dedim. Çoğumuz program yazdığımız ilk başlarda Hata koruması kullanmadığımız için programımızın işleyişi durabilir ya da hiç çalışmaz bir hal alabilir. Akıllı bir programcı programının düzgün ve sorunsuz çalışmasını istiyorsa mutlaka programlama yaparken try catch finally kod bloklarını kullanmıştır. Bizde küçük de olsa try catch finally e değinelim.
Misal Convert.ToInt32 komutunu C# kullanan herkes karşılaşmış, görmüş ve ya kullanmışlığı vardır.
Girilen string bir değeri veya daha farklı türde bir değeri misal double int'e çevirmek istiyorsak genelde Convert.ToInt32 komutunu kullanırız. Bunu kullanırken girilen değerimiz alacağımız sonuç değerine uygun değilse ve biz try catch kullanmamışsak programımızın işleyişi duracak ve hata verecektir. Bildiğiniz üzere de programcının hata görüp programının çalışmamasını görmek çoğu zaman sinir bozucu bir hal almaktadır. Bunun için en mantıklı yöntem try catch bloklarını kullanarak hata esnasında programın sonlanmasını engelleyebilir ve kullanıcıya daha mantıklı ifadeler çıkarabiliriz.
Gelelim örneğimize. Ben bu örnekde Textbox'a girilen değeri 2 şekilde Int'e çevirmeye çalıştım. Birincisinde try catch kullanmadım ve sonucu gördüm. Aynı şekilde birde try catch finally kullandım ve sonucu tekrar kontrol ettim. Programıma 1 textbox 1 label ve 2 button koydum ve yazdığım komutlar şöyleydi.
Try Catch Finally Kullanarak
private void btnKontrolEt_Click(object sender, EventArgs e)
{
try
{
Convert.ToInt32(txtDeger.Text);
}
catch (Exception Hata)
{
MessageBox.Show(Hata.Message);
}
finally
{
MessageBox.Show(txtDeger.Text + " deeri kontrol edildi.");
}
Try Catch Finally Kullanmayarak
private void btnKorumasizKontrol_Click(object sender, EventArgs e)
{
Convert.ToInt32(txtDeger.Text);
}
2 buttonun birisine hata kontrolü koydum diğerine koymadım. Şimdi burda bilmemiz gereken şeyler;
try {} arasına yazdığımız kodlar normal şekilde işleyen kodlardır.
catch{} hata olduğunda yapılacak olan işlemler. Exception ile belirlediğimiz bir değişkene Hata ayrıntılarını yükleriz. Misal ben Exception Hata dedim. ve Hata.Message ile de hata mesajını aldım.
finally{} ise hata olsa da olmasa da gerçekleştirilecek olan işlemdir. Misal Bağlantı nesnesini sonunda ne olursa olsun kapatmak istiyorsanız finally arasına bu kodu yazabilirsiniz.
Programı Çalıştırdığımda Hata Kontrolsüz butona tıkladığımda aldığım hata programın durdurulmasına ve aşağıdaki hatayı almama neden oldu.

Hata kontrolü yaptığımda aldığım mesaj ise aşağıdaki gibi ve hatalı işlem yapmama rağmen program durmadı.

Ve son olarak da hata olsa da olmasa da finally ile aldığım mesaj

Anlatacaklarım bu kadar. İftar sonrası performans bu kadar :)
Hepinize yaralı olması dileği ile.
Selametle..