3 Examples of Python Exception Handling

Learn about Python exception handling with practical examples to improve your coding skills and handle errors effectively.
By Taylor

Understanding Python Exception Handling

In Python, exception handling is a critical concept that allows you to manage errors gracefully without crashing your program. By using try, except, and other related keywords, you can catch exceptions and implement logic to handle them. Here are three practical examples of Python exception handling that illustrate how to manage common errors in your code.

Example 1: Handling Division by Zero

Context

One of the most common errors in programming is division by zero. This occurs when you attempt to divide a number by zero, which is mathematically undefined and will raise a ZeroDivisionError in Python. This example demonstrates how to handle this exception and provide user-friendly feedback.

try:
    numerator = int(input("Enter the numerator: "))
    denominator = int(input("Enter the denominator: "))
    result = numerator / denominator
    print(f"The result of {numerator} / {denominator} is {result}.\n")
except ZeroDivisionError:
    print("Error: You cannot divide by zero. Please try again!\n")
except ValueError:
    print("Error: Please enter valid integers.\n")

In this example, we use a try block to perform the division operation. If the user enters zero as the denominator, the program catches the ZeroDivisionError and prints a friendly error message instead of crashing. Additionally, we handle the ValueError to ensure the user inputs valid integers.

Example 2: File Not Found Error

Context

When working with files in Python, you may encounter situations where a file does not exist or cannot be found. This can lead to a FileNotFoundError. Here’s how you can handle this error when attempting to read a file.

try:
    file_name = input("Enter the name of the file to read: ")
    with open(file_name, 'r') as file:
        content = file.read()
        print(f"File content:\n{content}")
except FileNotFoundError:
    print(f"Error: The file '{file_name}' was not found. Please check the file name and try again.\n")
except Exception as e:
    print(f"An unexpected error occurred: {e}\n")

This example prompts the user for a file name and attempts to open it. If the file does not exist, the program catches the FileNotFoundError and informs the user. The generic Exception catch is also included to handle any other unforeseen errors, providing an additional layer of safety.

Example 3: Handling Multiple Exceptions

Context

Sometimes, you might want to handle multiple exceptions in a single except block. This is particularly useful when different types of errors can occur in the same code segment. In this case, we’ll demonstrate handling both ValueError and IndexError when working with a list.

my_list = [1, 2, 3]
try:
    index = int(input("Enter an index to access: "))
    print(f"The value at index {index} is {my_list[index]}.\n")
except (ValueError, IndexError) as e:
    if isinstance(e, ValueError):
        print("Error: Please enter a valid integer for the index.\n")
    else:
        print("Error: Index out of range. Please enter a valid index.\n")

In this example, we attempt to access an element from my_list using a user-provided index. If the user inputs a non-integer value, a ValueError is raised. If the index is out of range, an IndexError is raised. By grouping these exceptions together, we can handle them efficiently while providing specific feedback based on the type of error.

Conclusion

These examples of Python exception handling illustrate how to gracefully manage errors in your programs. By incorporating exception handling into your coding practices, you can create more robust applications that provide a better user experience.