Hi,
According to me, following answer is correct:
E.A Throwable is thrown by main
Java compiler only checks whether checked exceptions are caught or not. If method is throwing the checked exception and catch block doesn't specify that exception or superclass of it, then compilation error would occur. Here method is throwing error and compiler would not check if there exist a catch block for error or not. So there would not be any compilation error.
As error is subtype of Throwable , a Throwable is thrown by main.
Oracle Certified Professional, Java SE 6 Programmer (81%), Oracle Certified Expert, Java EE 6 Web Component Developer (87%)