Bird
Raised Fist0
Javaprogramming~10 mins

Try–catch block in Java - Interactive Code Practice

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to catch an exception.

Java
try {
    int result = 10 / 0;
} catch ([1] e) {
    System.out.println("Error occurred");
}
Drag options to blanks, or click blank then click option'
Aint
BException
CString
Dvoid
Attempts:
3 left
💡 Hint
Common Mistakes
Using a data type like int or String instead of an exception type.
Leaving the catch parentheses empty.
2fill in blank
medium

Complete the code to print the exception message.

Java
try {
    int[] arr = new int[2];
    System.out.println(arr[5]);
} catch (ArrayIndexOutOfBoundsException e) {
    System.out.println(e.[1]());
}
Drag options to blanks, or click blank then click option'
AtoString
BprintStackTrace
CgetMessage
Dlength
Attempts:
3 left
💡 Hint
Common Mistakes
Using printStackTrace() which prints the whole trace instead of just the message.
Using length which is not a method of exceptions.
3fill in blank
hard

Fix the error in the catch block declaration.

Java
try {
    int a = Integer.parseInt("abc");
} catch ([1] e) {
    System.out.println("Invalid number format");
}
Drag options to blanks, or click blank then click option'
ANumberFormatException
BNullPointerException
CIOException
DArithmeticException
Attempts:
3 left
💡 Hint
Common Mistakes
Using unrelated exceptions like IOException or ArithmeticException.
Not catching the specific exception thrown.
4fill in blank
hard

Fill both blanks to catch an exception and print its message.

Java
try {
    String s = null;
    System.out.println(s.length());
} catch ([1] e) {
    System.out.println(e.[2]());
}
Drag options to blanks, or click blank then click option'
ANullPointerException
BgetMessage
CprintStackTrace
DIOException
Attempts:
3 left
💡 Hint
Common Mistakes
Using IOException which is unrelated.
Using printStackTrace instead of getMessage.
5fill in blank
hard

Fill all three blanks to catch an exception, print its message, and execute code after try-catch.

Java
try {
    int[] nums = {1, 2, 3};
    System.out.println(nums[[1]]);
} catch ([2] e) {
    System.out.println(e.[3]());
}
System.out.println("Program continues");
Drag options to blanks, or click blank then click option'
A5
BArrayIndexOutOfBoundsException
CgetMessage
DNullPointerException
Attempts:
3 left
💡 Hint
Common Mistakes
Using a valid index like 2 which does not cause an exception.
Using NullPointerException which is unrelated here.
Using printStackTrace instead of getMessage.

Practice

(1/5)
1. What is the main purpose of a try-catch block in Java?
easy
A. To create new classes
B. To handle errors and prevent program crashes
C. To declare variables
D. To repeat code multiple times

Solution

  1. Step 1: Understand the role of try block

    The try block contains code that might cause an error during execution.
  2. Step 2: Understand the role of catch block

    The catch block runs only if an error occurs, allowing the program to handle it gracefully.
  3. Final Answer:

    To handle errors and prevent program crashes -> Option B
  4. Quick Check:

    try-catch handles errors = D [OK]
Hint: Try-catch is for error handling, not loops or declarations [OK]
Common Mistakes:
  • Confusing try-catch with loops
  • Thinking try-catch declares variables
  • Assuming try-catch creates classes
2. Which of the following is the correct syntax to catch an exception in Java?
easy
A. try { /* code */ } catch (e) { /* handle */ }
B. try { /* code */ } catch Exception e { /* handle */ }
C. try { /* code */ } catch { /* handle */ }
D. try { /* code */ } catch (Exception e) { /* handle */ }

Solution

  1. Step 1: Check catch syntax

    The catch block must specify the exception type in parentheses, like catch (Exception e).
  2. Step 2: Identify correct option

    try { /* code */ } catch (Exception e) { /* handle */ } correctly uses parentheses and exception type; others miss parentheses or type.
  3. Final Answer:

    try { /* code */ } catch (Exception e) { /* handle */ } -> Option D
  4. Quick Check:

    Correct catch syntax = A [OK]
Hint: Catch must have parentheses with exception type [OK]
Common Mistakes:
  • Omitting parentheses in catch
  • Not specifying exception type
  • Using wrong catch syntax
3. What will be the output of this code?
try {
  int a = 5 / 0;
  System.out.println("Result: " + a);
} catch (ArithmeticException e) {
  System.out.println("Error caught");
}
medium
A. Error caught
B. Result: 0
C. 5
D. Compilation error

Solution

  1. Step 1: Identify the error in try block

    Dividing by zero causes an ArithmeticException at runtime.
  2. Step 2: Check catch block response

    The catch block catches ArithmeticException and prints "Error caught".
  3. Final Answer:

    Error caught -> Option A
  4. Quick Check:

    Division by zero triggers catch = A [OK]
Hint: Division by zero triggers catch block output [OK]
Common Mistakes:
  • Expecting normal output despite error
  • Thinking code crashes without catch
  • Confusing compile-time and runtime errors
4. Find the error in this code snippet:
try {
  int[] arr = new int[3];
  arr[5] = 10;
} catch (ArrayIndexOutOfBoundsException e) {
  System.out.println("Index error");
}
medium
A. Array size is too small
B. No error, code runs fine
C. Catch block syntax is wrong
D. Exception type is incorrect

Solution

  1. Step 1: Analyze array usage

    Array declared with size 3, valid indices are 0,1,2; index 5 is out of bounds.
  2. Step 2: Understand exception thrown

    Accessing index 5 causes ArrayIndexOutOfBoundsException, which is correctly caught.
  3. Final Answer:

    Array size is too small -> Option A
  4. Quick Check:

    Index 5 invalid for size 3 = C [OK]
Hint: Check array size vs accessed index to find error [OK]
Common Mistakes:
  • Thinking catch syntax is wrong
  • Assuming no error occurs
  • Confusing exception types
5. You want to read an integer from user input safely. Which code correctly uses try-catch to handle invalid input?
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");
}
hard
A. Missing finally block causes error
B. Should catch IOException instead of Exception
C. Correctly handles invalid input with try-catch
D. Try block should be outside Scanner usage

Solution

  1. Step 1: Understand input reading

    Using sc.nextInt() reads integer input; invalid input throws InputMismatchException, a subclass of Exception.
  2. Step 2: Check try-catch usage

    The try block attempts input; catch block handles any Exception, printing "Invalid input" if input is wrong.
  3. Final Answer:

    Correctly handles invalid input with try-catch -> Option C
  4. Quick Check:

    Try-catch handles input errors = B [OK]
Hint: Catch Exception to handle all input errors safely [OK]
Common Mistakes:
  • Thinking finally is mandatory
  • Catching wrong exception type
  • Placing try block incorrectly