Try, Except, else and Finally in Python

04 Jul, 2022
An Exception is an Event, which occurs during the execution of the program. It is also known as a run time error. When that error occurs, Python generates an exception during the execution and that can be handled, which avoids your program to interrupt.
Example:
Python3
a = 5b = 0print(a/b)
Output:
Traceback (most recent call last):
  File "/home/8a10be6ca075391a8b174e0987a3e7f5.py", line 3, in <module>
    print(a/b)
ZeroDivisionError: division by zero
In this code, The system can not divide the number with zero so an exception is raised. 
Try: This block will test the excepted error to occur
Except:  Here you can handle the error
Else: If there is no exception then this block will be executed
Finally: Finally block always gets executed either exception is generated or not
Syntax:
try:
       # Some Code.... 

except:
       # optional block
       # Handling of exception (if required)

else:
       # execute if no exception

finally:
      # Some code .....(always executed)
Let’s first understand how the try and except works –
First try clause is executed i.e. the code between try and except clause.
If there is no exception, then only try clause will run, except clause will not get executed.
If any exception occurs, the try clause will be skipped and except clause will run.
If any exception occurs, but the except clause within the code doesn’t handle it, it is passed on to the outer try statements. If the exception is left unhandled, then the execution stops.
A try statement can have more than one except clause.
Example: Let us try to take user integer input and throw the exception in except block.
Python3
# Python code to illustrate# working of try() def divide(x, y):    try:        # Floor Division : Gives only Fractional        # Part as Answer        result = x // y        print("Yeah ! Your answer is :", result)    except ZeroDivisionError:        print("Sorry ! You are dividing by zero ")   # Look at parameters and note the working of Programdivide(3, 2)divide(3, 0)
Output:
Yeah ! Your answer is : 1
Sorry ! You are dividing by zero 
The code enters the else block only if the try clause does not raise an exception.
Example: Else block will execute only when no exception occurs.
Python3
# Python code to illustrate# working of try() def divide(x, y):    try:        # Floor Division : Gives only Fractional        # Part as Answer        result = x // y    except ZeroDivisionError:        print("Sorry ! You are dividing by zero ")    else:        print("Yeah ! Your answer is :", result)   # Look at parameters and note the working of Programdivide(3, 2)divide(3, 0)
Output:
Yeah ! Your answer is : 1
Sorry ! You are dividing by zero 
Python provides a keyword finally, which is always executed after try and except blocks. The finally block always executes after normal termination of try block or after try block terminates due to some exception. Even if you return in the except block still the finally block will execute
Example: Let’s try to throw the exception in except block and Finally will execute either exception will generate or not
Python3
# Python code to illustrate# working of try() def divide(x, y):    try:        # Floor Division : Gives only Fractional        # Part as Answer        result = x // y    except ZeroDivisionError:        print("Sorry ! You are dividing by zero ")    else:        print("Yeah ! Your answer is :", result)    finally:         # this block is always executed          # regardless of exception generation.         print('This is always executed')   # Look at parameters and note the working of Programdivide(3, 2)divide(3, 0)
Output:
Yeah ! Your answer is : 1
This is always executed
Sorry ! You are dividing by zero 
This is always executed
brownmetalheaddev
akshay vijay jain
Python-exceptions
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.