Csharp Oluşan Hatalar Hangi Bloklar ile Yakalanır?


Evet arkadaşlar bizler programlarımızı yazarken hata olmaması için elimizden geleni yaparız. Fakat bazen elimizde olmadan veya gözden kaçırdığımız hatalar ortaya çıkabilir. Programımızda hata oluştuğunda program çalışmasını kesmektedir. Bizler bu hataları programımız kesilmeden hemde nedenini nasıl öğreneceğiz şimdi onu öğreniyor olacağız.

Hata mesajlarını yakalamak için 3 adet blok kullanılır.
1. try{} bloku: Bu blok kodlarımız hatalı da olsa olmasa da her zaman çalışır.
2. catch{} bloku: Bu blok ise hata oluştuğu takdir de çalışmaktadır.
3. finally{} bloku: Bu blok ise program hata verse de vermese de son olarak yapılması gereken işlemleri tanımlamaktadır.

Evet kısaca bu bloklara deyindiğimize göre örneklerimize geçebiliriz.

Ö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();
        }
hata-olmadan-blok-calismasi
hata-olmadan-blok-calismasi

Örnekte görüldüğü gibi try{} blok çalıştı, finally{} blok ta çalıştı fakat catch{} bloku hata olmadığı için çalışmadı.

Ö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();
        }
hata-oldugunda-blok-calismasi
hata-oldugunda-blok-calismasi

Örnekte görüldüğü gibi try{} blok çalıştı, finally{} blok ta çalıştı bu defa bir hata meydana geldiği için catch{} bloku çalıştı. Peki hatanın nedeni ney? Evet matematik dersinden de hatırlayacağımız üzerine bir sayının sıfıra bölünmesi sonuç olarak tanımsızdır. Bu da bir hataya sebep olmaktadır.

 

Bir sonraki dersimizde görüşmek üzere.

Yayınlayan

Fuat ŞENGÜL

Fuat ŞENGÜL Samsun Havza ilçesinde 23.05.1990 da doğdu. Bilgisayar ile lise öğreniminde tanışan yazar Pascal, C/C++, Assembly ve Visual Basic dilleriyle birlikte yazılıma adım attı. 2008 yılında Fırat Üniversitesi Teknik Eğitim Fakültesi Bilgisayar öğretmenliğini kazandı. Öğrenimi sırasında web ve masaüstü yazılımları konusunda projelere imza atan yazar 2012 yılında mezun oldu. Yazar C/C++, C#, Asp.Net, Matlap, Jquery, Css ve Html gibi programlama dillerine hakim ve bu diller ile projeler üretmeye devam etmektedir. Bilişim Teknolojileri öğretmeni olarak görev yapmaktadır.

Bir cevap yazın

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

17 − twelve =