Running the following C# code through NUnit yields
Test.ControllerTest.TestSanity: Expected: `<System.DivideByZeroException>` But was: null
So either no DivideByZeroException is thrown, or NUnit does not catch it. Similar to this question, but the answers he got, do not seem to work for me. This is using NUnit 2.5.5.10112, and .NET 4.0.30319.
[Test]
public void TestSanity()
{
Assert.Throws<DivideByZeroException>(new TestDelegate(() => DivideByZero()));
}
private void DivideByZero()
{
// Parse "0" to make sure to get an error at run time, not compile time.
var a = (1 / Double.Parse("0"));
}
Any ideas?
No exception is thrown. 1 / 0.0 will just give you double.PositiveInfinity. This is what the IEEE 754 standard specifies, which C# (and basically every other system) follows.
If you want an exception in floating point division code, check for zero explicitly, and throw it yourself. If you just want to see what DivideByZeroException will get you, either throw it manually or divide integers by integer zero.