An instance initializer of a named class may not throw a checked exception unless that exception or one of its superclasses is explicitly declared in the throws clause of each constructor of its class and the class has at least one explicitly declared constructor. An instance initializer in an anonymous class (�15.9.5) can throw any exceptions.
According to the statement the following code should compile, but it is not compiling.
You are right. The code should compile according to JSL. This a point where the compiler doesn't conform to the JLS. There is a bug report in Sun's database, and I think, it has been also commented here in the Ranch.
SCJP2. Please Indent your code using UBB Code
Joined: Apr 15, 2002
Thanx Jose, But should I expect this type of question in the exam?
Joined: Jul 03, 2001
Not at all. They are careful enough in order not to show the possible bugs or inconsitencies of the compiler.