Skip to main content

Java Exception Handling MCQ Test

  Loading…

The finally Block

 The `finally` block in Java is used to define a block of code that will be executed regardless of whether an exception is thrown or not within the `try` block. It provides a way to perform cleanup tasks such as closing resources, releasing locks, or finalizing operations.

Syntax:


try {

    // Code that may throw an exception

} catch (ExceptionType ex) {

    // Code to handle the exception

} finally {

    // Code to be executed regardless of whether an exception occurs or not

}


Explanation:


- The `finally` block is optional and can appear after the `try` block or after the last `catch` block.

- The code inside the `finally` block will always be executed, irrespective of whether an exception occurs in the `try` block or whether it's caught by a `catch` block.

- The `finally` block is often used to release resources that were acquired in the `try` block, ensuring they are properly released even if an exception occurs.

- If an exception occurs in the `try` block and is caught by a `catch` block, the code in the `finally` block will still be executed before control is transferred to the `catch` block.

- If no exception occurs, the `finally` block is executed after the `try` block completes its execution.


Example:


import java.io.FileInputStream;

import java.io.IOException;


public class FinallyBlockExample {

    public static void main(String[] args) {

        FileInputStream inputStream = null;

        try {

            inputStream = new FileInputStream("example.txt");

            // Code that reads from the file

        } catch (IOException e) {

            System.out.println("Error reading file: " + e.getMessage());

        } finally {

            // Close the input stream regardless of whether an exception occurred or not

            try {

                if (inputStream != null) {

                    inputStream.close();

                }

            } catch (IOException e) {

                System.out.println("Error closing file: " + e.getMessage());

            }

        }

    }

}



In this example, the `finally` block is used to close the `FileInputStream` resource, ensuring that the file stream is properly closed even if an exception occurs while reading from the file.


Analogy:

Think of the `finally` block as the cleanup crew that arrives after a chaotic event. No matter what happened during the event (the `try` block), whether things went smoothly or there was a disaster, the cleanup crew (the `finally` block) ensures that everything is tidied up and put back in order. They sweep away debris, repair any damage, and restore the environment to its original state.

Comments

Popular posts from this blog

The Collection Interface.

  The Collection Interface. 

OracleJDK vs OpenJDK

Oracle JDK (Java Development Kit): Oracle JDK is the official reference implementation of the Java Platform, Standard Edition (Java SE). It included the JRE along with development tools. OpenJDK: An open-source alternative to Oracle JDK, OpenJDK is a community-driven project. It provides a free and open-source implementation of the Java Platform, and many other JDKs, including Oracle JDK, are derived from OpenJDK. Below is a simple table highlighting some key points of comparison between Oracle JDK and OpenJDK: Feature Oracle JDK OpenJDK Vendor Oracle Corporation OpenJDK Community Licensing Commercial (Paid) with Oracle Binary Code License Agreement Open Source (GNU General Public License, version 2, with the Classpath Exception) Support Commercial support available with Oracle Support subscription Community support, may have commercial support options from other vendors Updates and Patches Regular updates with security patches provided by Oracle Updates and patches contributed by the ...