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.