"Life is like riding a bicycle. To keep your balance you must keep moving."
- Albert Einstein
5.
What will be the output of the program?
public class RTExcept
{
public static void throwit ()
{
System.out.print("throwit ");
throw new RuntimeException();
}
public static void main(String [] args)
{
try
{
System.out.print("hello ");
throwit();
}
catch (Exception re )
{
System.out.print("caught ");
}
finally
{
System.out.print("finally ");
}
System.out.println("after ");
}
}
[A].
hello throwit caught
[B].
Compilation fails
[C].
hello throwit RuntimeException caught after
[D].
hello throwit caught finally after
Answer: Option B
Explanation:
The main() method properly catches and handles the RuntimeException in the catch block, finally runs (as it always does), and then the code returns to normal.
A, B and C are incorrect based on the program logic described above. Remember that properly handled exceptions do not cause the program to stop executing.
Since RuntimeException is not a subclass of Exception class and neither it needs to be declared or handle then how can a catch clause with Exception object as argument can handle this Runtime Exception?