Bird
Raised Fist0
Javaprogramming~20 mins

Checked vs unchecked exceptions in Java - Practice Questions

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
Challenge - 5 Problems
πŸŽ–οΈ
Exception Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of code with checked exception handling
What is the output of this Java code snippet?
Java
import java.io.*;

public class Test {
    public static void main(String[] args) {
        try {
            throw new IOException("IO error");
        } catch (IOException e) {
            System.out.println("Caught checked exception");
        }
    }
}
ACompilation error: unhandled exception
BCaught unchecked exception
CCaught checked exception
DNo output
Attempts:
2 left
πŸ’‘ Hint
Think about how checked exceptions must be caught or declared.
❓ Predict Output
intermediate
2:00remaining
Output of code with unchecked exception
What happens when this Java code runs?
Java
public class Test {
    public static void main(String[] args) {
        throw new NullPointerException("Null pointer");
    }
}
AProgram throws NullPointerException and terminates
BProgram prints "Null pointer"
CCompilation error: unhandled exception
DProgram runs without output
Attempts:
2 left
πŸ’‘ Hint
Unchecked exceptions do not need to be caught or declared.
🧠 Conceptual
advanced
2:00remaining
Difference between checked and unchecked exceptions
Which statement correctly describes the difference between checked and unchecked exceptions in Java?
ANeither checked nor unchecked exceptions require catching or declaring.
BUnchecked exceptions must be caught or declared; checked exceptions do not require this.
CBoth checked and unchecked exceptions must always be caught or declared.
DChecked exceptions must be caught or declared; unchecked exceptions do not require this.
Attempts:
2 left
πŸ’‘ Hint
Think about compiler enforcement for exception handling.
❓ Predict Output
advanced
2:00remaining
Compilation error due to unchecked exception declaration
What error occurs when compiling this Java code?
Java
public class Test {
    public static void main(String[] args) throws NullPointerException {
        throw new NullPointerException("Error");
    }
}
ACompilation error: cannot declare unchecked exception in throws clause
BCompiles and runs, throws NullPointerException
CNo output, program runs normally
DCompilation error: unhandled exception
Attempts:
2 left
πŸ’‘ Hint
Consider if declaring unchecked exceptions in throws clause is allowed.
❓ Predict Output
expert
2:00remaining
Output and exception behavior with mixed checked and unchecked exceptions
What is the output when running this Java program?
Java
import java.io.IOException;

public class Test {
    public static void riskyMethod() throws IOException {
        if (false) {
            throw new IOException("Checked IO error");
        } else {
            throw new IllegalArgumentException("Unchecked argument error");
        }
    }

    public static void main(String[] args) {
        try {
            riskyMethod();
        } catch (IOException e) {
            System.out.println("Caught checked exception");
        }
    }
}
AProgram terminates with IllegalArgumentException
BCaught checked exception
CCompilation error: unhandled exception
DNo output
Attempts:
2 left
πŸ’‘ Hint
Consider which exceptions are caught and which are not.

Practice

(1/5)
1. Which of the following statements correctly describes checked exceptions in Java?
easy
A. They are runtime exceptions that do not require handling.
B. They are errors that cannot be handled by the program.
C. They must be either caught or declared in the method signature.
D. They are always caused by bugs in the code.

Solution

  1. Step 1: Understand checked exceptions

    Checked exceptions are exceptions that the compiler forces you to handle or declare.
  2. Step 2: Compare options with definition

    They must be either caught or declared in the method signature. states they must be caught or declared, which matches the definition.
  3. Final Answer:

    They must be either caught or declared in the method signature. -> Option C
  4. Quick Check:

    Checked exceptions require handling = A [OK]
Hint: Checked exceptions need try-catch or throws declaration [OK]
Common Mistakes:
  • Confusing checked with unchecked exceptions
  • Thinking checked exceptions are always bugs
  • Believing checked exceptions don't need handling
2. Which of the following is the correct way to declare a method that throws a checked exception IOException?
easy
A. public void readFile() throws IOException {}
B. public void readFile() throw IOException {}
C. public void readFile() throws IOException() {}
D. public void readFile() throws new IOException {}

Solution

  1. Step 1: Recall correct syntax for throws

    The correct syntax uses the keyword throws followed by the exception class name without parentheses.
  2. Step 2: Analyze each option

    public void readFile() throws IOException {} matches the correct syntax exactly. Options A, B, and C have syntax errors.
  3. Final Answer:

    public void readFile() throws IOException {} -> Option A
  4. Quick Check:

    Correct throws syntax = D [OK]
Hint: Use 'throws ExceptionName' without parentheses [OK]
Common Mistakes:
  • Using 'throw' instead of 'throws' in method signature
  • Adding parentheses after exception name
  • Trying to instantiate exception in throws clause
3. What will be the output of the following Java code?
public class Test {
  public static void main(String[] args) {
    try {
      int a = 5 / 0;
    } catch (ArithmeticException e) {
      System.out.println("Caught unchecked exception");
    }
  }
}
medium
A. Compilation error due to unchecked exception
B. Caught checked exception
C. No output, program crashes silently
D. Caught unchecked exception

Solution

  1. Step 1: Identify exception type

    Dividing by zero causes an ArithmeticException, which is an unchecked exception.
  2. Step 2: Check catch block handling

    The catch block catches ArithmeticException and prints "Caught unchecked exception".
  3. Final Answer:

    Caught unchecked exception -> Option D
  4. Quick Check:

    Unchecked exceptions can be caught = B [OK]
Hint: ArithmeticException is unchecked and can be caught [OK]
Common Mistakes:
  • Thinking unchecked exceptions cause compile errors
  • Assuming program crashes without output
  • Confusing checked and unchecked exceptions
4. Consider this code snippet:
public void readFile() {
  FileReader fr = new FileReader("file.txt");
}

What is the error and how to fix it?
medium
A. FileReader constructor syntax is wrong; remove parentheses.
B. FileReader constructor throws checked IOException; add try-catch or declare throws.
C. FileReader is an unchecked exception; no fix needed.
D. FileReader must be imported from java.util package.

Solution

  1. Step 1: Identify exception type from FileReader

    The FileReader constructor throws a checked IOException.
  2. Step 2: Fix by handling or declaring exception

    We must either surround with try-catch or declare throws IOException in method signature.
  3. Final Answer:

    FileReader constructor throws checked IOException; add try-catch or declare throws. -> Option B
  4. Quick Check:

    Checked exceptions require handling = C [OK]
Hint: Checked exceptions must be caught or declared [OK]
Common Mistakes:
  • Ignoring checked exception requirement
  • Confusing package for FileReader
  • Thinking FileReader throws unchecked exceptions
5. You want to write a method that reads a file and returns its first line. The method should handle IOException internally but let runtime exceptions propagate. Which approach correctly applies checked vs unchecked exceptions?
hard
A. Use try-catch for IOException inside method; do not catch RuntimeExceptions.
B. Declare method throws IOException; catch RuntimeExceptions inside method.
C. Catch both IOException and RuntimeException inside method.
D. Do not catch any exceptions; let all propagate.

Solution

  1. Step 1: Understand handling checked exceptions

    Checked exceptions like IOException should be handled or declared. Here, handling internally means try-catch inside method.
  2. Step 2: Understand unchecked exceptions handling

    Unchecked exceptions (RuntimeExceptions) usually indicate bugs and should propagate to caller, so do not catch them here.
  3. Final Answer:

    Use try-catch for IOException inside method; do not catch RuntimeExceptions. -> Option A
  4. Quick Check:

    Handle checked, propagate unchecked = A [OK]
Hint: Catch checked exceptions; let unchecked exceptions propagate [OK]
Common Mistakes:
  • Catching unchecked exceptions unnecessarily
  • Declaring checked exceptions when handling internally
  • Ignoring exception handling rules