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
Arithmetic
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.
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.