Exception Handling in Python
“Handling the runtime errors”
What are Exceptions?
- An exception is an event that occurs during the execution of a program that disrupts the normal flow of instructions.
- These exceptions can occur for various reasons, such as invalid user input, file not found, or division by zero.
Handling Exceptions
- It is a powerful mechanism to handle runtime errors so that the normal flow of the application can be maintained.
- Since exceptions abnormally terminate the execution of a program, it is important to handle them. In Python, we use try and except blocks to handle exceptions. Another keyword, finally, can also be used to perform cleanup tasks.
try block
- The try block lets you test a block of code for errors.
- We put all code inside the try block that may raise runtime errors.
- When the try block encounters any runtime error, the control is passed to the appropriate except block.
except block
- The except block lets you handle runtime errors.
- When any runtime error occurs in the try block, the control is transferred to the except block to handle and maintain the normal execution of the program.
- A default “except” block can handle any type of runtime error. However, we can pass the name of a specific runtime error with the except block to handle only that type of error.
Examples
Example 1: Handling Divide by Zero (Without try-except)
a = int(input('Enter First Number (A)'))
b = int(input('Enter Second Number (B)'))
c = a / b
print(c)
- If the denominator is 0, the program crashes with a “ZeroDivisionError.”
Example 2: Handling Divide by Zero (With try-except)
try:
a = int(input('Enter First Number (A)'))
b = int(input('Enter Second Number (B)'))
c = a / b
print(c)
except:
print('Sorry you cannot divide by zero')
- If the denominator is 0, the program handles the error gracefully.
Example 3: Handling Specific Exception (ZeroDivisionError)
try:
a = int(input('Enter First Number (A) '))
b = int(input('Enter Second Number (B) '))
c = a / b
print(c)
except ZeroDivisionError:
print('Sorry you cannot divide number by zero')
- Only handles “ZeroDivisionError.” Other errors, like “ValueError,” will crash the program.
Example 4: Multiple Exception Handling
try:
a = int(input('Enter First Number (A) '))
b = int(input('Enter Second Number (B) '))
c = a / b
print(c)
if a < b:
d = d + a # This will raise a NameError
print(d)
except ZeroDivisionError:
print('Sorry you cannot divide number by zero')
except ValueError:
print('Please enter numbers only')
except:
print('--Something went wrong--')
- Handles multiple exceptions, including “ZeroDivisionError,” “ValueError,” and a default case for other errors.
finally block
- The ‘finally’ block is always executed, whether an exception occurs or not.
- It is used for cleanup actions like releasing resources or closing files.
Example with finally block:
try:
a = int(input('Enter First Number (A) '))
b = int(input('Enter Second Number (B) '))
c = a / b
except ZeroDivisionError:
print('Sorry you cannot divide number by zero')
except ValueError:
print('Please enter numbers only')
except:
print('--Something went wrong--')
finally:
print('-- Thanks for using the code --')
- The finally block executes in all cases, whether an exception occurs or not.
Points to Remember
- The try block must be followed by either an except or finally block.
- The except block is not mandatory with the try block, but it is necessary to handle errors for successful program execution.
- While handling multiple exceptions, the default except block must be the last block; otherwise, a syntax error will occur with the message “default except must be last.”
Written by CBSERanker Team
Educational content creators focused on CBSE Computer Science,
Python, and exam preparation.

EE881? Yeah, I’ve been there. I wouldn’t call it mind-blowing or anything, but it’s not bad for a quick punt. Registration was simple and I didn’t run into any crazy issues. It is what it is, give it a go if you are bored! You can find it here: ee881