# 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.