Interview Questions, Answers and Tutorials

Types of exceptions

Types of exceptions

Exceptions are like safety nets in programming. Imagine you’re riding a bike, and suddenly there’s a big bump in the road. If you don’t have a safety net (or exception), you might fall off your bike. In Java, exceptions help your program handle unexpected bumps and prevent it from crashing.

What are Exceptions?

In simple terms, an exception is an unexpected event that can happen while your program is running. These events could be anything from trying to divide a number by zero (which is not allowed in math) to reading a file that doesn’t exist.

Types of Exceptions

Java has two main types of exceptions: Checked Exceptions and Unchecked Exceptions.

Checked Exceptions

Checked exceptions are like your parents telling you to wear a helmet before riding your bike. They are expected, and you need to handle them in your code.

Example: FileNotFoundException
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

public class CheckedExceptionExample {
    public static void main(String[] args) {
        try {
            // Trying to read a file that might not exist
            File file = new File("nonexistent.txt");
            FileReader reader = new FileReader(file);
        } catch (IOException e) {
            // Handling the exception
            System.out.println("File not found: " + e.getMessage());
        }
    }
}

In this example, we try to read a file that might not exist. The FileReader can throw a FileNotFoundException, so we put the code inside a try block. If an exception occurs, we catch it in the catch block and print an error message.

Unchecked Exceptions

Unchecked exceptions are like unexpected surprises. They are usually caused by bugs in your code and can be handled, but you’re not forced to handle them.

Example: ArithmeticException
public class UncheckedExceptionExample {
    public static void main(String[] args) {
        int result;
        try {
            // Trying to divide a number by zero
            result = 10 / 0;
        } catch (ArithmeticException e) {
            // Handling the exception
            System.out.println("Cannot divide by zero: " + e.getMessage());
        }
    }
}

Here, we try to divide a number by zero, which is not allowed in math. The ArithmeticException occurs, and we catch it to avoid a program crash.

Best Practices

  1. Handle Exceptions Appropriately: Always try to handle exceptions in your code, especially checked exceptions. It’s like putting on your seatbelt while driving.
  2. Use Try-Catch Blocks: Wrap the code that might throw an exception inside a try block and catch the exception in a catch block.
  3. Don’t Ignore Exceptions: Ignoring exceptions is like pretending a problem doesn’t exist. Address the issue or log it for later analysis.
  4. Understand Exception Types: Different exceptions require different handling. Understand the specific exception and handle it accordingly.

Remember, just like learning to ride a bike, dealing with exceptions takes practice. Don’t be afraid to make mistakes and learn from them!