Analyze this code:
public void test() throws IOException {
// method body
}
What does 'throws' indicate?
Answer: B
The 'throws' keyword declares that a method might throw the specified checked exception. The responsibility of handling is passed to the caller of the method.
Q.202Medium
Which exception hierarchy is correct in Java?
Answer: B
Throwable is the root. It has two subclasses: Exception and Error. Exception has RuntimeException as a subclass. Checked exceptions extend Exception directly.
Q.203Medium
What will happen if you don't catch a checked exception?
Answer: A
Checked exceptions must be either caught in a try-catch block or declared in the method signature with 'throws'. Failure to do so results in a compilation error.
Q.204Medium
Which statement about multiple catch blocks is TRUE?
Answer: B
Only one catch block executes for a thrown exception. The first matching catch block is executed.
Q.205Medium
Analyze the code:
public void process() throws IOException {
try {
readFile();
} catch (FileNotFoundException e) {
// handle
}
}
What is the issue here?
Answer: C
Since FileNotFoundException is a subclass of IOException, and readFile() can throw IOException, it should be caught in a separate catch block or the method signature should only throw FileNotFoundException.
Advertisement
Q.206Medium
What happens if you throw an exception inside the finally block?
Answer: A
If an exception is thrown in finally block, it replaces the original exception that was being propagated. The original exception is lost.
Q.207Medium
Consider the code:
try (FileReader fr = new FileReader("file.txt")) {
// use fr
} catch (IOException e) {
// handle
}
What will happen to 'fr' after the try block?
Answer: B
Try-with-resources automatically closes resources implementing AutoCloseable interface, regardless of normal or exceptional termination.
Q.208Medium
Which of these is NOT a correct way to handle checked exceptions?
Answer: D
Checked exceptions must be either caught or declared using throws. Ignoring them causes compilation error.
Q.209Medium
What is the output?
public class Test {
public static void main(String[] args) {
int x = 0;
try {
x = 5;
System.out.println(x / 0);
x = 10;
} catch (ArithmeticException e) {
x = 15;
} finally {
System.out.println(x);
}
}
}
Answer: C
x becomes 5, then ArithmeticException occurs. x becomes 15 in catch block. Finally block prints 15.
Q.210Medium
What will happen if a finally block contains a return statement?
Answer: A
Return in finally block overrides returns in try or catch blocks. The finally return value is what gets returned.
Q.211Medium
Analyze the code:
try {
// code
} catch (IOException | SQLException e) {
// handle
}
What is this syntax called?
Answer: A
This is called multi-catch or union catch syntax (Java 7+) allowing multiple exception types to be caught in one block using pipe operator.
Q.212Medium
What is the difference between throw and throws?
Answer: A
'throw' keyword actually throws an exception object. 'throws' keyword declares that a method throws a checked exception.
Q.213Medium
Consider this code:
public static void main(String[] args) {
try {
System.out.println("A");
return;
} finally {
System.out.println("B");
}
}
What is the output?
Answer: A
Even with return in try block, finally block executes. So 'A' prints first, then 'B' before returning.
Q.214Medium
Which of the following cannot be used with try-with-resources?
Answer: C
Try-with-resources requires resources to implement AutoCloseable interface. String doesn't implement it, so it cannot be used.
Q.215Medium
Which statement is TRUE about exception propagation in Java?
Answer: A
When an exception is thrown and not caught, it propagates up the call stack until a matching catch block is found or the program terminates.
Q.216Medium
What will be the behavior if an exception is thrown in the finally block?
Answer: B
If an exception occurs in finally, it will propagate and override any previous exception from try/catch blocks. However, in try-with-resources, exceptions are suppressed.
Q.217Medium
Which statement about try-with-resources (introduced in Java 7) is correct?
Answer: B
Try-with-resources automatically invokes close() on any resource implementing AutoCloseable interface. Multiple resources can be declared with semicolon separation.
Q.218Medium
Consider this code snippet. What will happen?
try {
int x = 05;
} catch (NullPointerException e) {
System.out.println("Caught NPE");
}
Answer: B
05 throws ArithmeticException, not NullPointerException. The catch block only handles NPE, so ArithmeticException propagates to the caller.
Q.219Medium
What is the output of this code?
public class ExceptionDemo {
public static void main(String[] args) {
try {
int arr[] = new int[2];
arr[5] = 10;
} catch (Exception e) {
System.out.println("Exception caught");
} finally {
System.out.println("Finally block");
}
}
}
Answer: B
ArrayIndexOutOfBoundsException is caught by Exception catch block, printing 'Exception caught'. Finally block always executes regardless, printing 'Finally block'.
Q.220Medium
What happens if you use 'return' statement inside a finally block?
Answer: B
A return statement in finally will override and suppress any return value or exception from try/catch blocks. This is considered a bad practice.