C# Kendi İstisnai Durum Yönetimimizi Yapmak

Categories C#Posted on

Merhabalar, bu yazıda istisnai durum yönetimi nedir? Nasıl kullanılırdan? ziyade kendi istisnai durumumuzu nasıl yapabiliriz ile ilgili bir örnek yer almaktadır. İstisnai durum yönetimleri neredeyse tüm dillerde kullanılmaktadır. İstisnai durum yönetimi genelde kullanıcıdan veya program çalışması anında meydana gelen/gelebilecek hataların program akışını kesmesini önlemek için kullanılır. Try catch . Peki C# kendi istisnai durumumuzu yazabilir miyiz? yada kendi istisnai durumumuzu nasıl yapabiliriz?

  1. Kendi istisnai durumumuzu yazabilmek için öncelikle istisnai durumumuz ile ilgili bir class oluşturuyoruz. Ben class ismime Hata ismini verdim.
  2. Derleyicinin oluşturduğumuz class’ın istisnai durum olduğunu anlaması için ApplicationException sınıfından kalıtım almalıyız.
  3. Daha sonra hata mesajında kullanılmak üzere class içerisinde int bir sayı ve string bir deger tanımlaması yapılabilir. Veya yapılmayabilir. Bu kullanıcıya kalmış bir durumdur. İhtiyacınıza göre değişken sayısını belirleyebilirsiniz.
  4. Gerekli property tanımlamaları class içerisinde yapılmıştır.
  5. Kullanıcıya göndermek üzere ToString() methodunu override ediyoruz. Kullanıcı hata mesajı göstermek istediğinde bu method’u kullanacaktır.
public class Hata: ApplicationException
        {
            private int sayi;
            private string deger;

            public Hata(int sayi,string deger)
            {
                this.sayi = sayi;
                this.deger = deger;
            }

            public int Sayi
            {
                get { return sayi; }
                set { sayi = value; }
            }

            public string Deger
            {
                set { deger = value; }
                get { return deger; }
            }

            public override string ToString()
            {
                return String.Format("Hata mesajı! , sayi = {0} , deger = {1} ",sayi,deger);
            }
        }

 

Hata class’ımız bu kadar. Artık bu class’ı kullanabiliriz. Ben bir windows form application açtığım için kodları bir buton click’e atadım ve buton click durumuna göre işlemler yapılıyor.

Program textBox1 içerisindeki sayıyı kontrol ediyor ve sayı 4’ten büyük ise throw new Hata(sayi, degerimiz); ile bize hata fırlatıyor. Hata fırlatıldığı anda catch bloğu devreye girerek yukarıda oluşturduğumuz ToString() methodunu bize gösteriyor.

 private void button1_Click(object sender, EventArgs e)
        {
            label1.Text ="";
            int sayi =Convert.ToInt32(textBox1.Text);
            string degerimiz = "as";

            try
            {
                if (sayi > 4)
                {
                    throw new Hata(sayi, degerimiz);
                }
            }
            catch (Hata hata)
            {
                MessageBox.Show(hata.ToString());
            }
        }

Yukarıda catch bloğu Hata tipinde bir değişken almaktadır. Bu Hata daha önce oluşturmuş olduğumuz istisnai durumumuzun ismidir.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

This site uses Akismet to reduce spam. Learn how your comment data is processed.