DEV Community

Cover image for Python Try Except Exception Handling
pavanbaddi
pavanbaddi

Posted on • Edited on • Originally published at thecodelearners.com

Python Try Except Exception Handling

Try Except are two important blocks of exception handling these are helpful in preventing the unpredicted, unforeseen errors in the program. They flexibly handle mistakes which help in identifying bugs easy.

Some examples of errors

>>> 1/0
#PYTHON OUPUT
Traceback (most recent call last):
File "", line 1, in 
ZeroDivisionError: division by zero

>>> x/5
#PYTHON OUPUT
Traceback (most recent call last):
File "", line 1, in 
NameError: name 'x' is not defined

ZeroDivisionError caused when a number is divided by zero. NameError caused as the variable x was not initialized. You'll learn more of them in the below examples.

Creating Try Except block

We start by specifying try block and inside it will run program code. In except the block will print or log the exception occurred while testing the code.

Note: Exception is of different types you'll learn those in this tutorial.

try:
    a=10
    b='12'
    c=a+b
    print("Result {}".format(c))
except:
    print("Exception has occured while adding two numbers")

#PYTHON OUTPUT
Exception has occured while adding two numbers

In the above scenario, we are testing the addition operation. But you can observe that in try block we are preforming addition on a number and another is a string so when we run code we will get an error and try block will pass the error to except block to handle it in a more graceful manner only if the error has occurred else will skip that step. We can also chain the except block multiple times

try:
    a=10
    b='12'
    c=a+b
    print("Result {}".format(c))
except NameError:
    print("Variable is not defined")
except ZeroDivisionError:
    print("Error while trying to divide by Zero")
except TypeError:
    print("Unsupported Operands.")  

#PYTHON OUTPUT
Unsupported Operands.

Handling more than one exceptions

try:
    a=21
    b=0
    c=a/b
    print(c)
except NameError as n:
    print("Variable is not defined n message : {}".format(n))
except ZeroDivisionError as z:
    print("Error while trying to divide by Zero n message : {}".format(z))
except TypeError:
    print("Unsupported Operands n message : {}".format(z))  

#PYTHON OUTPUT
Error while trying to divide by Zero 
    message : division by zero

Insisted on calling except block one after another we can assign all the above exceptions in a single block.

try:
    a=21
    b=0
    c=a/c
    print(c)
except (NameError, ZeroDivisionError, TypeError):
    print('Error has occured.')

#PYTHON OUTPUT
Error has occured.

Try except and finally

Finally is an optional statement in the try-except block. This executes every time whenever the try-except statement is performed even if an error has occurred.

try:
    a=21
    b=0
    c=a/b
    print(c)
except:
    print("Exception has occured.")
finally:
    print("Finally block is executed every time try...except block is executed.")

#PYTHON OUTPUT
Exception has occured.
Finally block is executed every time try...except block is executed.

Raising Exceptions

raise are exception handling statements? They are helpful for specified cases where programmer intentionally raises and exception message.

Raising exception using the raise statement

In this example, we'll raise error without try-except statement.

a = None
if a != None:
    print("exists")
else:
    raise Exception("Variable is not defined.")

#PYTHON OUTPUT
Traceback (most recent call last):
File "main.py", line 6, in 
    raise Exception("Variable is not defined.")
Exception: Variable is not defined.

This article was taken from Try Except Exception Handling in Python

Reference Posts

Top comments (0)