Inquisition 0.14 - Q25 - John Meyers's SCJP 5 mock exam

A questão 25 do exame => John Meyers’s SCJP 5 mock exam esta marcada com gabarito errado…

import java.util.*; import java.io.*; class test implements Runnable { public static void main( String args[] ) { Thread t = new Thread(this); try { t.start(); } catch ( IOException e) { System.out.println(e); } } public void run() throws IOException { File f = new File("f"); FileWriter fw = new FileWriter(f); } }

Choose 1 option

A) One Compile Error
B) Runtime Error
C) Complie with warnings
D) Two Compile Errors
E) None of the above

segundo o gabarito do exame o correto seria

[quote]The correct answer is D.
this is referenced from a static context and run does not throw any checked exceptions to begin with.[/quote]

porem existem 3 erros de compilação nesse codigo, e o correto seria letra E

são os erros:

linha 5:Thread t = new Thread(this); //não se pode usar this, a partir de um método estatico
linha 9:

catch ( IOException e) { //não se pode tentar capturar uma exceção verificada que não é lançada
linha 13:

public void run() throws IOException { //não se pode lançar uma exceção verificada, em um método sobrescrito, onde o //método da classe pai, ou interface implementada, não o define.