Examples of Try-Catch Block Example in Java

Explore practical examples of try-catch blocks in Java for effective exception handling.
By Jamie

Introduction to Try-Catch Blocks in Java

In Java, exception handling is a crucial aspect of programming that allows developers to manage errors gracefully. A try-catch block is a fundamental construct used to catch and handle exceptions that may occur during the execution of a program. By implementing try-catch blocks, developers can prevent abrupt program termination and provide meaningful feedback to users. Below are three diverse and practical examples of try-catch blocks in Java, showcasing different use cases.

Example 1: File Reading with Error Handling

Context

In this example, we will demonstrate how to handle exceptions that may arise when attempting to read a file. This is a common scenario in applications that involve file input/output operations.

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class FileReadExample {
    public static void main(String[] args) {
        BufferedReader reader = null;
        try {
            reader = new BufferedReader(new FileReader("example.txt"));
            String line;
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }
        } catch (IOException e) {
            System.err.println("Error reading file: " + e.getMessage());
        } finally {
            try {
                if (reader != null) {
                    reader.close();
                }
            } catch (IOException ex) {
                System.err.println("Error closing reader: " + ex.getMessage());
            }
        }
    }
}

Notes

  • The try block attempts to read from a file named example.txt. If the file is not found or an I/O error occurs, an IOException is caught in the catch block.
  • The finally block ensures that resources are cleaned up properly, closing the BufferedReader even if an exception occurs.

Example 2: Database Connection Handling

Context

Here, we will illustrate how to manage exceptions that arise during database connection attempts. This is essential for applications that rely on databases.

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DatabaseConnectionExample {
    public static void main(String[] args) {
        Connection connection = null;
        try {
            String url = "jdbc:mysql://localhost:3306/mydatabase";
            String user = "username";
            String password = "password";
            connection = DriverManager.getConnection(url, user, password);
            System.out.println("Database connected successfully.");
        } catch (SQLException e) {
            System.err.println("Database connection failed: " + e.getMessage());
        } finally {
            try {
                if (connection != null) {
                    connection.close();
                }
            } catch (SQLException ex) {
                System.err.println("Error closing connection: " + ex.getMessage());
            }
        }
    }
}

Notes

  • The try block attempts to establish a connection to a MySQL database. If the connection fails (e.g., due to incorrect credentials or unreachable database), a SQLException is caught.
  • The finally block is used to close the connection and free up resources, ensuring that the application does not leak database connections.

Example 3: User Input Validation

Context

This example demonstrates how to handle exceptions that may occur during user input parsing. This is particularly useful for applications that require numeric input from users.

import java.util.Scanner;

public class UserInputExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Enter a number: ");
        try {
            String input = scanner.nextLine();
            int number = Integer.parseInt(input);
            System.out.println("You entered: " + number);
        } catch (NumberFormatException e) {
            System.err.println("Invalid input: Please enter a valid integer.");
        } finally {
            scanner.close();
        }
    }
}

Notes

  • In this example, the try block attempts to parse user input as an integer. If the input is not a valid integer, a NumberFormatException is caught, allowing the program to handle the error gracefully.
  • The finally block ensures that the Scanner object is closed after its use, which is important for resource management.

By utilizing try-catch blocks effectively, Java developers can create robust applications that handle exceptions and errors efficiently, enhancing user experience and application reliability.