What a strange question most developers will say. DivideByZeroException
is thrown every time you divide by zero, right? No – it depends.
Let’s try – regular division with integers.
int i1 = 4;
int i2 = 0;
try
{
Console.WriteLine(i1 / i2);
}
catch (System.DivideByZeroException)
{
Console.WriteLine("DivideByZeroException");
}
Hmm, I see a DivideByZeroException coming, and that’s
absolutely correct. So what is all the fuzz about?
Let’s try again, but this time with floating point numbers.
double d1 = 4.0;
double d2 = 0.0;
try
{
Console.WriteLine(d1 / d2);
}
catch (System.DivideByZeroException)
{
Console.WriteLine("DivideByZeroException");
}
If you try to run this piece of code, no exception is
thrown. Instead INF (short for infinite) is returned. To be more precise a PositiveInfinity,
due to the decimalNumerator is positive.
I read this somewhere and had to test it. I even asked
my colleagues when DivideByZeroException is thrown and showed them these code examples.
None of them knew the right answer. So it’s not only me, whom is ignorant.
Related posts:
- Strings in .Net
- Favor structured exception handling
- A simple Windows Communication Foundation Web Service
- New blog – NoTech
Tags: dotNet
This is my problem too.
I found your note after a long while, searching the net. Thanks for sharing that