There are a lot of times when in order to prototype fast, we need to ignore a few exceptions to get to the final result and then fix them later. In this article, we will see how we can ignore an exception in Python and proceed.
Demonstrate Exception in Python
Before seeing the method to solve it, let’s write a program to raise an error.
Python3
def divide(a, b): return a / b print (divide( 4 , 0 )) |
Output:
Solution using the Try Except Method
In this example, you can see two cases of the Python Try-Except method. One which leads to an exception and another which will run without any exception. In the code, you can see how we are handling the error. (Here we are aware of the error we are going to encounter).
Example 1:
In the code, you can see how we are handling the error, Here we are aware of the error we are going to encounter.
Python3
def divide(a, b): try : result = a / b except ZeroDivisionError: result = 0 return result print (divide( 3 , 0 )) print (divide( 4 , 2 )) |
Output:
0 2.0
Example 2:
In this example, let’s assume we are unaware of the error we are going to encounter. Here we can see that the specified error is not given. This might not be a good practice, because it becomes hard to trace the exact issue in the code.
Python3
def divide(a, b): try : result = a / b except : result = 0 return result print (divide( 3 , 0 )) print (divide( 4 , 2 )) |
Output:
0 2.0
Solution Using Suppress Function
To ignore an exception and continue execution in Python using suppress, you can use the with a statement with the suppress function from the contextlib module. This allows you to specify the exception to be suppressed, and the with statement will automatically suppress the specified exception and continue execution after the with block.
Example 1:
In this example, the with statement is used to wrap the code that might throw an exception. The suppress function is used to specify the ZeroDivisionError exception to be suppressed. If the code inside the with block raises a ZeroDivisionError, it will be suppressed and execution will continue after the with block.
Python3
from contextlib import suppress with suppress(ZeroDivisionError): # Some code that might throw ZeroDivisionError 1 / 0 print ( "After the with block" ) |
Output:
After the with block
Example 2:
In this example, the try…except statement is used to wrap the with a block that uses suppress to ignore a ZeroDivisionError exception. The try…except statement also includes an except block that catches ValueError exceptions. If a ValueError is raised by the code inside the try block, it will be caught by the except block and handled by printing the error message. However, since the with block uses suppress to ignore the ZeroDivisionError that is raised by the code, this exception will not be handled and execution will continue after the try…except block.
Python3
from contextlib import suppress try : with suppress(ZeroDivisionError): # Some code that might throw ZeroDivisionError 1 / 0 except ValueError as e: print ( "ValueError:" , e) print ( "After the try-except block" ) |
Output:
After the try-except block
Conclusion
It is generally not recommended to use this approach to ignore exceptions. Instead, you should handle the exceptions properly by providing appropriate actions in the except block. Ignoring exceptions can lead to unexpected behavior and can make it difficult to debug your code. It is better to handle exceptions explicitly so that you can control how your program responds to them.