What if your program could fix its own mistakes without stopping suddenly?
Why Try–catch block in Java? - Purpose & Use Cases
Start learning this pattern below
Jump into concepts and practice - no test required
Imagine you are writing a program that reads a file. Without any safety checks, if the file is missing or unreadable, your program just crashes suddenly.
Manually checking every possible error before it happens is slow and complicated. You might miss some errors, causing your program to stop unexpectedly and confuse users.
The try-catch block lets you run risky code safely. If something goes wrong, the catch part handles the problem smoothly without crashing your program.
FileReader file = new FileReader("data.txt"); // No error handling, program crashes if file missing
try { FileReader file = new FileReader("data.txt"); } catch (FileNotFoundException e) { System.out.println("File not found, please check the path."); }
It enables your program to keep running safely even when unexpected problems happen.
When a banking app tries to connect to the internet but the connection fails, try-catch helps show a friendly message instead of crashing.
Try-catch blocks catch errors during program execution.
They prevent crashes by handling problems gracefully.
This makes programs more reliable and user-friendly.
Practice
try-catch block in Java?Solution
Step 1: Understand the role of try block
The try block contains code that might cause an error during execution.Step 2: Understand the role of catch block
The catch block runs only if an error occurs, allowing the program to handle it gracefully.Final Answer:
To handle errors and prevent program crashes -> Option BQuick Check:
try-catch handles errors = D [OK]
- Confusing try-catch with loops
- Thinking try-catch declares variables
- Assuming try-catch creates classes
Solution
Step 1: Check catch syntax
The catch block must specify the exception type in parentheses, likecatch (Exception e).Step 2: Identify correct option
try { /* code */ } catch (Exception e) { /* handle */ } correctly uses parentheses and exception type; others miss parentheses or type.Final Answer:
try { /* code */ } catch (Exception e) { /* handle */ } -> Option DQuick Check:
Correct catch syntax = A [OK]
- Omitting parentheses in catch
- Not specifying exception type
- Using wrong catch syntax
try {
int a = 5 / 0;
System.out.println("Result: " + a);
} catch (ArithmeticException e) {
System.out.println("Error caught");
}Solution
Step 1: Identify the error in try block
Dividing by zero causes anArithmeticExceptionat runtime.Step 2: Check catch block response
The catch block catchesArithmeticExceptionand prints "Error caught".Final Answer:
Error caught -> Option AQuick Check:
Division by zero triggers catch = A [OK]
- Expecting normal output despite error
- Thinking code crashes without catch
- Confusing compile-time and runtime errors
try {
int[] arr = new int[3];
arr[5] = 10;
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("Index error");
}Solution
Step 1: Analyze array usage
Array declared with size 3, valid indices are 0,1,2; index 5 is out of bounds.Step 2: Understand exception thrown
Accessing index 5 causesArrayIndexOutOfBoundsException, which is correctly caught.Final Answer:
Array size is too small -> Option AQuick Check:
Index 5 invalid for size 3 = C [OK]
- Thinking catch syntax is wrong
- Assuming no error occurs
- Confusing exception types
import java.util.Scanner;
Scanner sc = new Scanner(System.in);
int num;
try {
num = sc.nextInt();
System.out.println("You entered: " + num);
} catch (Exception e) {
System.out.println("Invalid input");
}Solution
Step 1: Understand input reading
Usingsc.nextInt()reads integer input; invalid input throwsInputMismatchException, a subclass of Exception.Step 2: Check try-catch usage
The try block attempts input; catch block handles any Exception, printing "Invalid input" if input is wrong.Final Answer:
Correctly handles invalid input with try-catch -> Option CQuick Check:
Try-catch handles input errors = B [OK]
- Thinking finally is mandatory
- Catching wrong exception type
- Placing try block incorrectly
