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.

Bir Cevap Yazın

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