Java | Exception Handling | Question 4
class Base extends Exception {}class Derived extends Base {} public class Main { public static void main(String args[]) { // some other stuff try { // Some monitored code throw new Derived(); } catch(Base b) { System.out.println("Caught base class exception"); } catch(Derived d) { System.out.println("Caught derived class exception"); } }} |
(A) Caught base class exception
(B) Caught derived class exception
(C) Compiler Error because derived is not throwable
(D) Compiler Error because base class exception is caught before derived class
Answer: (D)
Explanation: See Catching base and derived classes as exceptions
Following is the error in below program
Main.java:12: error: exception Derived has already been caught
catch(Derived d) { System.out.println("Caught derived class exception"); } 


