Sometimes, your program might run into problems. Handling specific exceptions helps you catch and fix only certain errors, so your program can keep running smoothly.
0
0
Handling specific exceptions in Python
Introduction
When you want to catch a mistake like dividing by zero and show a friendly message.
When reading a file that might not exist and you want to handle that case differently.
When converting user input to a number and want to catch invalid input errors.
When calling a function that might raise different errors and you want to handle each one separately.
Syntax
Python
try: # code that might cause an error except ExceptionType: # code to handle that specific error
Replace
ExceptionType with the specific error you want to catch, like ZeroDivisionError or FileNotFoundError.You can have multiple
except blocks to handle different errors separately.Examples
This catches the error when dividing by zero and prints a message.
Python
try: x = 10 / 0 except ZeroDivisionError: print("Cannot divide by zero!")
This handles the case when the file does not exist.
Python
try: f = open('missing.txt') except FileNotFoundError: print("File not found.")
This catches errors when the user types something that is not a number.
Python
try: num = int(input('Enter a number: ')) except ValueError: print("That's not a valid number.")
Sample Program
This program tries to divide two numbers. If the second number is zero, it catches the error and returns a friendly message instead of crashing.
Python
def divide_numbers(a, b): try: result = a / b except ZeroDivisionError: return "Error: Cannot divide by zero." else: return f"Result is {result}" print(divide_numbers(10, 2)) print(divide_numbers(5, 0))
OutputSuccess
Important Notes
Always catch the most specific exceptions you expect to handle.
Using a general except: without specifying the error can hide bugs and is not recommended.
You can use else: after try-except to run code only if no error happened.
Summary
Use try-except to catch specific errors and keep your program running.
Handle different errors with separate except blocks for clearer code.
Provide helpful messages or actions when errors happen to improve user experience.