C# DivideByZeroException

Warning: exclamation mark

A DivideByZeroException is thrown. It indicates that a statement attempted to evaluate a division by zero. The C# compiler can detect divisions by the constant zero value. The CLR can throw the exception during program execution.

Divide

Example

First, this program shows how an exception is thrown by the execution engine when you divide an int by zero. It uses a zero value determined at runtime through a parsing method, so that the program can be correctly compiled.

IntProgramming tip

Then:We discuss issues related to the compiler system and dividing a number by zero.

Based on:

.NET 4.0

Program that divides by zero: C#

using System;

class Program
{
    static void Main()
    {
	//
	// This expression evaluates to 100 / 0, which throws.
	// ... You can check the denominator in a separate step.
	//
	int result = 100 / int.Parse("0");
	Console.WriteLine(result);
    }
}

Output

Unhandled Exception: System.DivideByZeroException: Attempted to divide by zero.
   at Program.Main() in ... Program.cs:line 11
Squares

This program is meant to throw a System.DivideByZeroException. It uses the int.Parse("0") method to receive a zero value. It avoids using a zero constant because the C# compiler would detect that error before runtime (see below section).

int.Parse

The division is evaluated to 100 / 0, which of course cannot be done by the execution engine. The program terminates by throwing a DivideByZeroException. To avoid the exception, you must always test the denominator value for zero.

Tip:Alternatively you can use try and catch around the problematic division expression.

TryCatch

Discussion

Note

Let's discuss the C# compiler's capacity to detect division by zero errors. If you try to divide by a constant zero (the number 0 in source code), the program will fail to compile and can never be executed.

The compiler does this to reduce errors in finished programs that were not tested. This can be confusing because it exposes how the system uses different compilation phases. The divide by zero error can be detected on different levels.

Compile-Time Error
Error 1:

Division by constant zero

Summary

C# programming language

We demonstrated the DivideByZeroException in the C# language, which is detected at two different stages: compile-time and runtime. This exception is built into the C# language itself. The specification contains the exact requirements.

Tip:To avoid the divide by zero exception, you obviously must check the denominator against the zero value.

And:This numeric check will be much faster than having an exception thrown in the runtime.


C#: Exception