# ZeroDivisionError Exception in Python

Handling Zero Division exceptions in Python

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

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.