How to catch ZeroDivisionError Exception in Python?

The ZeroDivisionError is raised in Python when a number is divided by zero. Since dividing by zero is mathematically undefined, Python throws this error to prevent invalid operations.

In this article, you will learn how to catch and handle ZeroDivisionError using the try-except block. By handling this exception, the execution of the program continues even after the ZeroDivisionError exception occurs.

The ZeroDivisionError generally occurs in the following cases ?

  • Dividing any number by zero using / or // operators
  • Modulo operation with zero as the divisor using %

Using try-except to Catch ZeroDivisionError

We can catch ZeroDivisionError by placing the code that is prone to this exception in the try-except block. In the except block, we can print an appropriate message providing the required information about the exception.

Example

In this example, we try to divide a number by zero, and catch the exception using ZeroDivisionError ?

try:
    result = 10 / 0
    print("Result:", result)
except ZeroDivisionError:
    print("Cannot divide by zero.")

The output of the above code is ?

Cannot divide by zero.

Catching ZeroDivisionError Using Exception Object

You can also use the exception object to display the exact error message generated by Python.

Example

In this example, we catch the error and print its message using the exception object ?

try:
    value = 8 // 0
    print("Value:", value)
except ZeroDivisionError as e:
    print("Error caught:", e)

The output of the above code is ?

Error caught: integer division or modulo by zero

Handling Modulo Operation

The ZeroDivisionError also occurs when using the modulo operator (%) with zero as the divisor ?

try:
    remainder = 15 % 0
    print("Remainder:", remainder)
except ZeroDivisionError:
    print("Cannot perform modulo with zero.")

The output of the above code is ?

Cannot perform modulo with zero.

Using ZeroDivisionError in User Input

Typically, while performing arithmetic operations like division, we accept values from the user. In this example, we are accepting the denominator value from the user and placing the statements performing the division operation within the try-except block ?

try:
    num = int(input("Enter a number: "))
    result = 100 / num
    print("Result is:", result)
except ZeroDivisionError:
    print("Cannot divide by zero.")

The sample output is ?

Enter a number: 0
Cannot divide by zero.

Handling Multiple Exceptions

You can catch multiple exceptions (such as ValueError and ZeroDivisionError) in one program by using multiple except blocks.

Example

In the following example, we handle both invalid input and division by zero separately ?

try:
    num = int(input("Enter a number: "))
    result = 50 / num
    print("Result:", result)
except ValueError:
    print("Invalid input. Please enter a number.")
except ZeroDivisionError:
    print("Cannot divide by zero.")

Sample outputs for different inputs ?

Enter a number: 0
Cannot divide by zero.

Enter a number: abc
Invalid input. Please enter a number.

Enter a number: 5
Result: 10.0

Best Practices

When handling ZeroDivisionError, consider these best practices ?

  • Always validate user input before performing division operations
  • Use specific exception handling rather than catching all exceptions
  • Provide meaningful error messages to help users understand the issue
  • Consider using conditional statements to check for zero before division

Conclusion

The ZeroDivisionError exception helps prevent mathematical errors in Python programs. Use try-except blocks to handle division by zero gracefully and provide meaningful feedback to users when invalid operations occur.

Updated on: 2026-03-24T16:26:42+05:30

780 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements