Home Python C Language C ++ HTML 5 CSS Javascript Java Kotlin SQL DJango Bootstrap React.js R C# PHP ASP.Net Numpy Dart Pandas Digital Marketing

Else and Finally Blocks in Python


Python provides powerful constructs for exception handling. Among these are the else and finally blocks, which complement the try and except blocks. These blocks help ensure that certain code is executed under specific conditions, regardless of whether exceptions occur.

Else Block

The else block in Python is used to execute code if no exceptions occur in the try block. It is placed after the except block.

Example 1: Using Else Block

    try:
        # Attempt to divide two numbers
        result = 10 / 2
    except ZeroDivisionError as e:
        print(f"Error: {e}")
    else:
        print(f"Division successful, result is {result}")
        

In this example, the division operation is successful, so the else block is executed, printing the result. If an exception occurs, the else block is skipped.

Example 2: Else Block with File Operations

    try:
        # Open a file and read its contents
        with open("example.txt", "r") as file:
            content = file.read()
    except FileNotFoundError as e:
        print(f"Error: {e}")
    else:
        print("File read successfully:")
        print(content)
        

In this example, the else block runs only if the file is successfully opened and read. If the file is missing, the except block handles the error, and the else block is skipped.

Finally Block

The finally block is used to execute code that must run no matter what happens in the try block. It is often used for cleanup tasks, such as closing files or releasing resources.

Example 3: Using Finally Block

    try:
        # Attempt division
        result = 10 / 0
    except ZeroDivisionError as e:
        print(f"Error: {e}")
    finally:
        print("This will always execute, regardless of an exception.")
        

Here, the finally block executes even though a ZeroDivisionError occurs. It ensures that the specified code is always run, regardless of whether an exception is raised or not.

Example 4: Finally Block for Resource Cleanup

    try:
        # Open a file for reading
        file = open("example.txt", "r")
        # Perform file operations
        content = file.read()
    except FileNotFoundError as e:
        print(f"Error: {e}")
    finally:
        # Ensure the file is closed
        file.close()
        print("File has been closed.")
        

In this example, the finally block ensures that the file is closed, regardless of whether the try block executes successfully or raises an exception.

Using Else and Finally Together

You can use both the else and finally blocks together for maximum control over your code's execution flow.

Example 5: Else and Finally Together

    try:
        # Attempt to divide two numbers
        result = 10 / 2
    except ZeroDivisionError as e:
        print(f"Error: {e}")
    else:
        print(f"Division successful, result is {result}")
    finally:
        print("Execution completed, cleaning up.")
        

In this example, the else block runs if the division is successful, while the finally block always runs, ensuring that cleanup tasks are performed regardless of the outcome.

Key Points

Conclusion

The else and finally blocks are valuable tools for managing code execution in Python. The else block ensures that specific code is run when no exceptions occur, while the finally block guarantees the execution of critical cleanup tasks. Together, they help make your programs more reliable and easier to maintain.



Advertisement





Q3 Schools : India


Online Complier

HTML 5

Python

java

C++

C

JavaScript

Website Development

HTML

CSS

JavaScript

Python

SQL

Campus Learning

C

C#

java