trycatchfinally-ornek-uygulama

Eğer bir yazılımcı iseniz yada yazılımcı olmak istiyorsanız programlamadan hoşlanıyorsunuz demektir. Her güzel şeyin bir sıkıntısı olduğu gibi yazılımcıların en büyük sıkıntısı ise hatalardır. Yazılımcı olmanın en birinci kuralı ise hatalar ile boğuşmaktır. Fakat ben programcılıkta karşılaşılan hataları ikiye ayırıyorum.

İlk hata türü, yazılan satırlar arasında yanlış bir kod dizimi yada syntax hatasından kaynaklı olarak yazılan programın istenmedik bir şekilde çalışmasına yada programın tamamen sonlanmasına neden olabilir. Bu tür sorunlarda doğru dizilimi bulmak tek çözüm yoludur.

Bir diğer hata türünde ise, yazılan programda bir sıkıntı yoktur fakat hazırlanan matematiksel yada mantıksal algoritma işleminin içinde bir hata vardır. Böyle bir durumda program kod akışını devam ettiremez ve hata verir. Bu hata yapısını ortadan kaldırmak için kullanılan kod yapısına verilen isim try catch yada try catch finally olarak ifade edilir.

C# da ikinci türden bir hata olması durumunda programın devam etmesini için  Try Catch Finally yapısını kullanmak tek çözüm yoludur. Try catch finally yapısı bizim beklemediğimiz bu özel durumlarda hataları bizim yerimize bulur alternatif yollara başvurarak programın düzgün devam etmesini sağlar.

Try catch finally yapısının ne olduğunu ifade ettiğimize göre artık bu yapının çalışma mantığı ve kullanımı hakkında bilgiler vermeye başlayabilirim. Özellikle verdiğim örnek ile ne tür adımlarda kullandığımızı çok iyi anlayacağınızı umuyorum.

C# Try Catch Finally İşleminin Çalışma Yapısı

Try bloku içine normal işleyiş sırasına göre kodlar yazılır. Program başlatıldığında Try bloğu içerisindeki tüm kodlar işlenmeye başlanır. Eğer blog içerisindeki kod ifadeleri düzgün bir şekilde çalışırsa sorun olmadığı anlaşılır. Eğer kod ifadelerinden herhangi birinde hata ile karşılaşılırsa try bloku çalışmayı bitirir ve hatayı yakalamak için program catch blokuna atlar.

Catch bloku belirli bir özel durumu yakalayıp işler.  Try bloğunda oluşabilecek birden fazla hatayı ayrı ayrı yakalayıp işlemek isterseniz birden fazla catch ifadesi yazabilirsiniz.

Finally bloğu Try bloğundan hemen sonra veya en son oluşturulmuş catch bloğundan hemen sonra çalışır. Program try bloğuna girdi ise kesinlikle finally bloğu da çalışacaktır.  Bu işlemler ile programın her zaman sorunsuz şekilde çalışmasını sağlarız.

C# Try Catch Finally Kullanım Şekilleri

Belirli Özel sınıfı yakalayan bir catch işleyişi
try
{
….
}
catch(FormatException fEx)
{
….
}

Bütün özel durumları yakalayan bir catch işleyişi
try
{
….
}
catch(Exception Ex)
{
….
}
Özel durum oluşsa da programın çalışmasını devam ettirmek için kullanım.
try
{
….
}
finally
{
//finally bloğu her zaman çalışır…
}

Try Catch Finally için Örnek Uygulama

Bu uygulama ile try catch finally yapısının kullanımı hakkında fikir sahibi olacağınız gibi try catch finally ile hata nasıl yakalanır ve sorunlar nasıl düzeltilerek  programın tekrar sorunsuz çalışması sağlandığını öğreneceksiniz.

Aşağıda kod satırlarını inceleyerek işe başlayabilirsiniz.

Uygulamada yer alan butona her bastığımda rastgele bir sayı üretip bu sayıyı bölme işlemine tabi tutuyorum. Burada hata oluşma ihtimali ise bölme işlemini sırasında paydanın 0 olmasıdır. Bilindiği üzere bölme işleminde payda 0 olursa işlem tanımsız olur.

Yazdığım kod satırlarına göre örnek de 0 ile 5 arasında rastgele bir sayi seçiliyor ve bu sayi değeri sonuc değişkenine bölünüyor. Yani yapılan işlem  sonuc = sonuc / sayi dır. Yukarıda ifade ettiğim gibi bölme kuralına göre payda 0 olursa bölme işleminin sonucu tanımsız olur. Rastgele seçilen sayi değişkenine 0 atandığı durumda bölme işlemi yapılamayacağından program bölme işlemini gerçekleştiremez ve bir hata üretir. Fakat bölme işlemini yapan kod satırlarını try catch finally yapısı içinde yazdığım için hata durumunda hata üretmek yerine catch bloğu çalışacaktır. Catch işlemi ile hata yakalandıktan sonra ise finally bloku çalışacak ve program sorunsuz bir şekilde çalışmasını devam ettirecektir.

Aşağıda uygulamanın kod satırlarına bakarak inceleyebileceğiniz gibi isterseniz uygulamayı da indirebilirsiniz.

Uygulamayı indirmek için tıklayın…

int sayi = 0;
int sonuc=10;
private void button1_Click(object sender, EventArgs e)
{
try
{
Random RasSayi = new Random();
sayi = RasSayi.Next(5);
sonuc = sonuc / sayi;
lstboxSonuc.Items.Add(sonuc.ToString());
label1.Text = sonuc.ToString();
}
catch (Exception ex)
{
MessageBox.Show(“İşlem başarısız…”);
}
finally
{
if (sayi==0)
{
lstboxSonuc.Items.Clear();
sayi = 0;
sonuc = 10;
}

}
}

Ayrıca bir başka örnek uygulamam olan faktöriyel hesaplama programında ortaya çıkan güzel bir try catch finally örneğini de sizlerle burada paylaşmak istiyorum. Bu paylaştığım linkte de try catch finally yapısının kullanımını anlayan iyi bir örnek oldu.

8 Responses to C# Try Catch Finally Kullanımı

  1. Anonymous diyor ki:

    eline sağlık güzel yazı olmuş

  2. Anonymous diyor ki:

    C++ felan kullanmayı öğretsene bana ya 🙂 yada visual basic

  3. Anonymous diyor ki:

    ellerine sağlık,acil işimi gördü,sağoalsın

  4. sadık bozkurt diyor ki:

    Birilerine ufakta olsa yardımım dokunduysa ne mutlu bana 🙂 Siz saolun…

  5. anonymous diyor ki:

    çok beğendim ben eski bir dost

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir