What is the result of the following code snippet?
try {
throw new NullPointerException();
} catch (ArithmeticException e) {
System.out.println("Arithmetic Exception!");
} catch (NullPointerException e) {
System.out.println("NullPointerException!");
}
throw new NullPointerException();
} catch (ArithmeticException e) {
System.out.println("Arithmetic Exception!");
} catch (NullPointerException e) {
System.out.println("NullPointerException!");
}
A. NullPointerException!
B. Compilation error
C. Runtime exception
D. Arithmetic Exception!
Answer: Option A
Solution (By Examveda Team)
In the given code snippet, a NullPointerException is explicitly thrown within the try block. When an exception is thrown, the Java runtime looks for a catch block that matches the type of the thrown exception.In this case, since a NullPointerException is thrown, the catch block specifically catching NullPointerException will be executed. Therefore, the output of the code will be "NullPointerException!".
Hence, Option A: NullPointerException! is the correct result of the code snippet.
The Answer 'D' is wrong because we are throwing a specific unchecked exception and we are having multiple catch blocks so the exception is handled by NullpointerException Only and we get out put as NullPointerException!