Giriş-Çıkış İşlemleri Hata Mesajları C# Console-Programlama Temelleri Ders 11

Giriş-Çıkış İşlemleri Hata Mesajları C# Console – Programlama Temelleri Ders 11

Daha fazla bilgi için : www.gorselprogramlama.com

Programın çalışması esnasında  kullanıcının yanlış girişleri programın hata mesajı verip durmasına neden olabilir.Biz  bir programcı bunları tahmin edip bunlara engel olmalı veya yanlış girişte programın durdurulmasına engel olmalıyız.Önce hatalar oluştuğunda programın nasıl sonlandığını görelim daha sonra bunun için bir çözüm arayalım.

Örnek:

[code language=”csharp”]

class Program

{

static void Main(string[] args)

{

byte sayi;

Console.Write("Lütfen sayı Giriniz = ");

sayi = byte.Parse(Console.ReadLine());

Console.WriteLine("Girilen sayi {0}", sayi);

Console.ReadKey();

}

}

//Daha fazla bilgi için :www.gorselprogramlama.com

[/code]

Programı çalıştırdığmızda Ekran çıktısı aşağıdaki gibi olacaktır.Değişkenimiz byte olarak tanımlı.byte’ın  0 ile 255 arasında değer aldığını biliyoruz.Aşağıdaki görüldüğü gibi bu sınır dışında değer girelim.

 

Sınır dışında değer girdiğimiz için aşağıda görüldüğü gibi program durur ve hatayı yansıtır.

 Bu defa da sayı yerine string ifade girelim. (FormatException hatası)

Daha fazla bilgi için : www.gorselprogramlama.com

Bu defada byte.Parse ile string ifade sayıya çevrilmeye zorlanacağından program durur ve aşağıdaki hatayı yansıtır.

 

Çözüm :  c#’ta hata yakalama işlemi için try-catch kullanılır.Hata oluşunca catch’dan sonraki kodlar çalışır.program kodlarımızı try’dan sonraki güzel parantezler arasına yazıyoruz.Exception’dan sonra bir değişken tanımlıyoruz.Ben aşağıdaki örnekte görüldüğü gibi değişkene hata adını verdim.Siz farklı bir isim verebilirsiniz. catch’dan sonraki güzel parantez arasında ise hata oluştuktan sonra yapılacak işlemler için kodları yazıyoruz.Hata oluştuğu zaman ekrana hatanın adınıda yazsın diye değişken_ismi.message kodunu kullandım.(hata.Message).Baş tarafınada Oluşan Hata: ekledim.finally bölümünde ise hata oluşsun yada oluşmasın her iki durumdada yapılmasını istediğiniz kod satırlarını yazabilirsiniz.finally bölümünü kullanmak isteğe bağlıdır.İsterseniz kullanmayabilirisniz.

Örnek:

[code language=”csharp”]

class Program

{

static void Main(string[] args)

{

try

{

byte sayi;

Console.Write("Lütfen sayı Giriniz = ");

sayi = byte.Parse(Console.ReadLine());

Console.WriteLine("Girilen sayi {0}", sayi);

Console.ReadKey();

}

catch (Exception hata)

{

Console.WriteLine("Oluşan Hata : {0}", hata.Message);

Console.ReadKey();

}

finally

{

Console.WriteLine("İyi günler");

Console.ReadKey();

}

}

}//Daha fazla bilgi için :www.gorselprogramlama.com[/code]

 Programı çalıştırdığmızda Ekran çıktısı aşağıdaki gibi olacaktır.Dikkat ederseniz finally bölümüne ekrana iyi günler yazma kodu var.Hata oluşsun yada oluşmasın her iki durumda ekrana iyi günler yazıyor.

 

 

 

 

 

Oluşabilecek diğer hataları deneme yanılma yoluyla yapabilirsiniz.(DivideByZeroException (Sıfıra bölme hatası) ,  System.IndexOutOfRangeException ( Dizin, dizi sınırlarının dışındaydı hatası.Mesela 10 elemanlı tanımlanmış bir dizinin 15. elemanına değer atanmak istendiğinde) , NullReferenceException (boş diziye işlem uygulanmak istendiğinde oluşur) gibi .)

Daha fazla bilgi için : www.gorselprogramlama.com

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir