How to capture divide by zero exception in C#?

The System.DivideByZeroException is a class that handles errors generated from dividing a number by zero. This exception occurs when you attempt to divide an integer or decimal value by zero during arithmetic operations.

In C#, you can capture and handle this exception using try-catch blocks to prevent your application from crashing and provide meaningful error messages to users.

Syntax

Following is the syntax for handling divide by zero exception −

try {
    result = dividend / divisor;
} catch (DivideByZeroException e) {
    // Handle the exception
    Console.WriteLine("Cannot divide by zero: " + e.Message);
}

Basic Exception Handling Example

Here's a simple example that demonstrates how to catch a divide by zero exception −

using System;

class DivNumbers {
    int result;

    public DivNumbers() {
        result = 0;
    }

    public void division(int num1, int num2) {
        try {
            result = num1 / num2;
        } catch (DivideByZeroException e) {
            Console.WriteLine("Exception caught: {0}", e.Message);
        } finally {
            Console.WriteLine("Result: {0}", result);
        }
    }

    public static void Main(string[] args) {
        DivNumbers d = new DivNumbers();
        d.division(25, 0);
    }
}

The output of the above code is −

Exception caught: Attempted to divide by zero.
Result: 0

Using Multiple Exception Types

You can handle multiple types of exceptions that might occur during division operations −

using System;

class SafeDivision {
    public static double Divide(double numerator, double denominator) {
        try {
            return numerator / denominator;
        } catch (DivideByZeroException ex) {
            Console.WriteLine("Error: Division by zero is not allowed.");
            return 0;
        } catch (Exception ex) {
            Console.WriteLine("An unexpected error occurred: " + ex.Message);
            return 0;
        }
    }

    public static void Main(string[] args) {
        Console.WriteLine("20 / 4 = " + Divide(20, 4));
        Console.WriteLine("15 / 0 = " + Divide(15, 0));
        Console.WriteLine("10.5 / 2.5 = " + Divide(10.5, 2.5));
    }
}

The output of the above code is −

20 / 4 = 5
Error: Division by zero is not allowed.
15 / 0 = 0
10.5 / 2.5 = 4.2

Custom Exception Handling with Validation

You can also validate input before performing division to prevent the exception −

using System;

class Calculator {
    public static double SafeDivide(double a, double b) {
        if (b == 0) {
            Console.WriteLine("Warning: Cannot divide by zero. Returning 0.");
            return 0;
        }
        return a / b;
    }

    public static double DivideWithException(double a, double b) {
        try {
            return a / b;
        } catch (DivideByZeroException) {
            Console.WriteLine("Exception handled: Division by zero detected.");
            return double.NaN;
        }
    }

    public static void Main(string[] args) {
        Console.WriteLine("=== Safe Division ===");
        Console.WriteLine("Result: " + SafeDivide(100, 5));
        Console.WriteLine("Result: " + SafeDivide(100, 0));
        
        Console.WriteLine("
=== Exception Handling ==="); Console.WriteLine("Result: " + DivideWithException(50, 2)); Console.WriteLine("Result: " + DivideWithException(50, 0)); } }

The output of the above code is −

=== Safe Division ===
Result: 20
Warning: Cannot divide by zero. Returning 0.
Result: 0

=== Exception Handling ===
Result: 25
Exception handled: Division by zero detected.
Result: NaN

Key Points

  • Use try-catch blocks to handle DivideByZeroException gracefully.

  • The finally block always executes regardless of whether an exception occurs.

  • Consider input validation as an alternative to exception handling for better performance.

  • For floating-point division, dividing by zero results in Infinity rather than an exception.

Conclusion

Capturing divide by zero exceptions in C# is essential for creating robust applications. Use try-catch blocks with DivideByZeroException to handle these errors gracefully, or implement input validation to prevent them entirely. Always provide meaningful error messages to help users understand what went wrong.

Updated on: 2026-03-17T07:04:35+05:30

4K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements