Ders-3) Try -Catch nedir? C# Try -catch örnekleri

Hazırlayacağımız programın en önemli özelliklerinden biri de stabil çalışması olmalıdır. Stabil çalışması programımızın hatalara karşı ne kadar hazırlıklı ve kullanıcıya verdiği geri dönütle eş değerdir. Programımızın çalışması sırasında oluşabilecek hatalar genellikle kullanıcı girişlerinden kaynaklanır. Bu yüzden kullanıcı girişlerini kontol altına alarak çalışma zamanında oluşabilecek hataları en aza indirmek ise biz programcıların görevidir. Önce hatalar oluştuğunda programın nasıl sonlandığını görelim daha sonra bunun için bir çözüm arayalım.

Örnek:
static void Main(string[] args)
{
int x;
Console.Write(“Bir Sayıyı Giriniz: “);
x = Convert.ToInt16(Console.ReadLine());
Console.ReadKey();
}


Programımızı çalıştıralım ve sayı yerine string bir ifade girelim.

Programda istenilen sayı yerine ‘string’ bir ifade girdiğimiz zaman ekran çıktısı aşağıdaki gibi olacaktır. ‘String’ ifade ‘int’ tipine çevrilmede zorlanılacağından program duracaktır. Giriş dizesinin doğru olmadığına dair bir hata verecektir (Input string was not in a corrent format.) .

static void Main(string[] args)
{
int x, y;
Console.Write("1. Sayıyı Giriniz: ");
x = Convert.ToInt16(Console.ReadLine());
Console.Write("2. Sayıyı Giriniz: ");
y = Convert.ToInt16(Console.ReadLine());
Console.WriteLine("{0} / {1} = {2}", x, y, x / y);
Console.ReadKey();
}
Programımızı çalıştıralım ve aşağıdaki gibi değerleri girelim.

Girilen sayılardan biri sıfır olduğu zaman programımız sıfıra bölme hatasıyla karşılaşacağından dolayı duracaktır (Attempted to divide by zero) .

İstisnaları program esnasında yakalamak ve kullanıcıya hata mesajını vermek için try{} catch{} finally{} bloklarını kullanıyoruz.
try{} bloku: İstisnanın çıkması muhtemel kodların yazıldığı bloktur.
catch{} bloku: Oluşan istisnanın yakalandığı ve kullanıcıya sunulduğu bloktur.
finally{} bloku: Try bloku içinde hata olsa da olmasa da çalışmasını istediğimiz kadların yazıldığı bloktur. Finally bloğu genellikle bazı kaynakları serbest bırakmak için kullanılır. Kullanılması isteğe bağlı bir bloktur. En sık kullanıldığı yerler açık olan veri tabanı bağlantılarının program kırılsa da kırılmasa da kapatılması durumlarıdır.
Örnek :


static void Main(string[] args)
{
int x, y;
Console.Write("1. Sayıyı Giriniz: ");
x = Convert.ToInt16(Console.ReadLine());
Console.Write("2. Sayıyı Giriniz: ");
y = Convert.ToInt16(Console.ReadLine());
try
{
Console.WriteLine("{0} / {1} = {2}", x, y, x / y);
}
catch (Exception e)
{
Console.WriteLine("Hata Oluştu : {0}", e);
}
finally
{
Console.WriteLine("İyi Günler");
}
Console.ReadKey();
}


Programımızı çalıştırıp aşağıdaki gibi değerleri girdiğimiz zaman herhangi bir hatayla karşılaşılmadığından istediğimiz sonucu üretecektir.

Fakat programımıza aşağıdaki değerleri girdiğimiz zaman hatayla karşılaşılacak ve programımız olduğu yerde durup catch{} blokuna atlayacak ve buradan çalışmaya devam edecektir.

Bir cevap yazın

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