ZeroDivisionError Exception in Python

By Lenin Mishra

This is the part of the 9th day in the Python 30 series. Check out the series here.

A ZeroDivisionError is raised when you try to divide by 0. This is part of the ArithmeticError Exception class.

Example 1

Code/Output

# integers
1/0
>>> ZeroDivisionError: division by zero

# floats
5.3/0
>>> ZeroDivisionError: float division by zero

# complex numbers
(1+2j)/0
>>> ZeroDivisionError: complex division by zero
Example 2 - decimal library

If you are working with a decimal library and you perform the division operation with a 0, you get a DivisionByZero error.

The DivisionByZero eexception is decimal libraries own exception type that derives from the ZeroDivisionError exception.

Code

from decimal import Decimal

x = Decimal(1)
print(x/0)

Output

decimal.DivisionByZero: [<class 'decimal.DivisionByZero'>]
Handling ZeroDivisionError in Python

You can handle ZeroDivisionError errors by using the same exception class in your except block.

Code

# integers
try:
    1/0
except ZeroDivisionError as e:
    print(e)


# floats
try:
    5.3/0
except ZeroDivisionError as e:
    print(e)

# complex numbers
try:
    (1+2j)/0
except ZeroDivisionError as e:
    print(e)

Output

division by zero
float division by zero
complex division by zero
Hierarchy of ZeroDivisionError

The ZeroDivisionError inherits from the ArithmeticError class, which in turn inherits from the generic Exception class.

  • Exception
    • ArithmeticError
      • ZeroDivisionError

So you can catch all ZeroDivisionError exceptions using the ArithmeticError exception class.

Code

# integers
try:
    1/0
except ArithmeticError as e:
    print(e, e.__class__)


# floats
try:
    5.3/0
except ArithmeticError as e:
    print(e, e.__class__)

# complex numbers
try:
    (1+2j)/0
except ArithmeticError as e:
    print(e, e.__class__)

Output

division by zero <class 'ZeroDivisionError'>
float division by zero <class 'ZeroDivisionError'>
complex division by zero <class 'ZeroDivisionError'>

Check out other Python Built-in Exception classes in Python.

  1. Try, Except, Else and Finally in Python
  2. KeyError Exception in Python
  3. OverflowError Exception in Python
  4. ArithmeticError Exception in Python
  5. IndexError Exception in Python
  6. LookupError Exception in Python
  7. StopIteration Exception in Python
  8. TypeError Exception in Python
  9. NameError Exception in Python
  10. FileNotFoundError Exception in Python
  11. Catch Multiple Exceptions in Python