26.07.2017 Views

bilgeadam-c-kitabi

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

24 KISIM I:<br />

Try Catch Finally<br />

Try Catch Finally<br />

• Çalışma zamanında çıkan hataların işlenmesini sağlar.<br />

• Try, hata doğurabilecek kodları tutar.<br />

• Catch, hata yakalandıktan sonra çalışacak kodları tutar.<br />

• Finally, her iki durumdan sonra çalışacak kodları tutar.<br />

int dosya = FreeFile();<br />

try {<br />

string kayit = "Kayıt Zamanı: " + Now;<br />

kayit += "\r\n" + "Uygulama kayıtları...";<br />

FileOpen(dosya, "C:\\Log.txt", OpenMode.Binary, OpenAccess.Write);<br />

FilePut(dosya, kayit);<br />

} catch (Exception ex) {<br />

MsgBox(ex.Message);<br />

} finally {<br />

FileClose(dosya);<br />

}<br />

Çalışma zamanında ortaya çıkan hatalar uygulamanın beklenmedik bir şekilde<br />

sonlanmasına neden olur. Uygulamanın devam etmesi için bu hataların<br />

yakalanıp işlenmesi gerekir. Try Catch Finally blokları içinde, çalışma<br />

zamanı hataları meydana geldiği durumlarda çalışması istenen kodlar yazılır.<br />

Try bloğu içine, çalışırken hata üretebilecek kodlar yazılırken, Catch bloğu<br />

içine, hata oluştuğunda yapılması gereken işlemler yazılır.<br />

int sayi, sonuc;<br />

try<br />

{<br />

Random r = new Random();<br />

sayi = r.Next(3);<br />

sonuc = 100 / sayi;<br />

MessageBox.Show("Bölme işlemi başarılı, sonuç: "<br />

+ sonuc.ToString());<br />

}<br />

catch (Exception ex)<br />

{<br />

MessageBox.Show("Bölme işlemi başarısız. Hata<br />

Mesajı: " + ex.Message);<br />

}<br />

Bu örnekte üretilen rasgele bir sayı ile bölme işlemi yapılıyor. Sayı sıfır değerini<br />

aldığında bölme işlemi hata üretecektir. Dolayısıyla bu işlem Try bloğu içine<br />

yazılmalıdır. Catch bloğunda, işlemin başarısız olduğunu belirten bir mesaj

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!