1. Ana Sayfa
  2. C Sharp

C# DivideByZero – OverFlow – NotFiniteNumber Exception Nedenleri

C# DivideByZero – OverFlow – NotFiniteNumber Exception Nedenleri
+ - 0

Merhaba, C# DivideByZero – OverFlow – NotFiniteNumber Exception Nedenleri dersim ile Exceptions derslerime devam ediyorum. Bu dersimizde üç farklı ArithmeticException özel durumuna birden bakacağız. Aslında bu konular çok kısa olduğundan üç konuyu birden işlemek istedim.  Önceki dersimizde C# FileNotFoundException – Nedenleri konusuna değinmiştik.

Bu örnekler önceki dersimizde olduğu gibi kullanımları hakkında mantıklarına uygun örnekler aklıma gelmedi. Biraz araştırdım ama bulamadım. Bu konular çok kısa olduğundan 3 konuyu birleştirmek istedim.

C# DivideByZero – OverFlow – NotFiniteNumber Exception Nedenleri

ArithmeticExceptions, genelde matematiksel işlemler ortaya çıkan bir özel durumdur.

C# DivideByZeroException Nedenleri

Devralma :  Object > Exception > SystemException > ArithmeticException> DivideByZeroException

DivideByZeroException , bir sıfıra bölünme işleminde ortaya çıkan bir özel durumdur. C# ile hiçbir sayı sıfıra bölünemez. Bir sayıyı sıfıra bölme girişimde bu özel durum alınır. Aşağıda örneğini görebilirsiniz.

        #region DivideByZeroException Çıkarma ve Yakalama Örneği
        private void btDivideByZeroException_Click(object sender, EventArgs e)
        {
            int number1 = 3000;
            int number2 = 0;
            try
            {
                int result = number1 / number2;
            }
            catch (DivideByZeroException ex)
            {
                txt_cikti.Text += ex.GetType().Name + ":" + ex.Message;
            }          
        }
        #endregion

 

C# OverFlowException Nedenleri

Devralma :  Object > Exception > SystemException > ArithmeticException> OverFlowException

OverFlowException, bir işlem sonucu veya bir dönüşüm sonucu taşma durumunda ortaya çıkan özel durumdur. Örneğin bir işlem sonucunda bir sayı int32 değerini aşıp int64 sınırlarına giriyor ise bu özel durum çıkar.

Aşağıdaki örnekte görebilirsiniz. Bir sayısının karesini almak istediğimizde değerin int32 sınırlarını aştığını görebiliriz.

        #region OverFlowException Çıkarma ve Yakalama Örneği
        private void btn_OverFlowException_Click(object sender, EventArgs e)
        {
            int value = 780000000;
            checked
            {
                try
                {
                    int square = value * value;
                }
                catch (OverflowException ex)
                {
                    double square = Math.Pow(value, 2);
                    txt_cikti.Text = ex.GetType().Name + ":" + ex.Message + Environment.NewLine + string.Format("Exception: {0} > {1:E}.", square, Int32.MaxValue);
                }
            }
        }
        #endregion

 

C# NotFiniteNumberException Nedenleri

Devralma :  Object > Exception > SystemException > ArithmeticException> NotFiniteNumberException

NotFiniteNumberException, bir pozitif veya negatif sonsuzluk olması durumunda ortaya çıkan bir özel durumdur. Sonsuzluk değeri dışında sayı olmayan yani NaN değerinde olan ifadeler için ortaya çıkar. Her ne kadar amacı bu olsa bile C# sonsuz sayı örneği denememde bu hatayı alamadım. Aşağıdaki örneği deneyebilirsiniz.

        #region NotFiniteNumberException Çıkarma ve Yakalama Örneği
        private void btn_NotFiniteNumberException_Click(object sender, EventArgs e)
        {
            try
            {
                Single x = 5;
                x = x / 0;
                x = x + 1;
            }
            catch (NotFiniteNumberException ex)
            {
                //bla bla bla 
            }
        }
        #endregion

Sonucun sonsuz olmasına rağmen hata çıkmıyor. Görselde de görebilirsiniz.

C# NotFiniteNumberException Nedenleri

Bu konuda internette araştırma yapmama rağmen bir sonuç elde edemedim.


C# DivideByZero – OverFlow – NotFiniteNumber Exception Nedenleri dersimiz de bu kadardı arkadaşlar.

Tüm Exceptions derslerime bağlantıdan ulaşabilirsiniz.

C Sharp Eğitim Seti eğitimi sayfasına gitmek için tıklayınız.

Derslerime özel olarak hazırladığım Github Projeme buradan ulaşabilirsiniz… Bu dersim Github projemde yerini almıştır. Tüm Exception adı altında eklediğim dersleri Github projeme ekleyeceğim.

Sağlıcakla ve takipte kalın. ?

Bu yazıya tepkiniz ne oldu?

Yazar Hakkında

Lise Ağ Sistemleri ve Yönetimi bölümü, üniversite Bilgisayar Programcılığı bölümü Ön Lisans, Yönetim Bilişim Sistemleri Lisans öğrenimi aldım. Askerlik görevimi tamamladım. Uzmanlık alanım; C# ve SQL Programlama dilleri ile müşteri odaklı, kullanıcı dostu ERP ve CRM gibi sistemleri geliştirmektir. Ayrıca şuanda PHP ve MYSQL alanında projeler geliştirmekteyim. C++, Phyton, Xamarin, MVC gibi konuları öğrenmek ve kendimi geliştirme çabası içerisindeyim. Discord için: https://discord.gg/FBxZeHu9

Değerli yorumlarınızı bekliyorum. :)