As classes java.io.LineNumberReader e java.io.Reader em Java...
As classes java.io.LineNumberReader e java.io.Reader em Java podem ser utilizadas para ler arquivos. Avalie o fragmento abaixo, e em seguida, assinale a alternativa correta.
Comentários
Veja os comentários dos nossos alunos
As exceções FileNotFoundException e IOException devem vir antes da exceção Throwable, pois elas tratam situações
específicas (ex.: arquivo não encontrado). Quando se coloca uma exceção muito genérica (ex.: Throwable) antes das
exceções específicas (ex.: FileNotFoundException), por definição, o programa nunca ativará as exceções específicas
que estão logo depois da exceção genérica. Assim, tem-se um uso incorreto da linguagem.
Fonte:
DEITEL, Harvey; DEITEL, Paul. J. Java: como programar. 8. ed. São Paulo: Pearson, 2015.
Um construtor não possui tipo ( nem mesmo VOID ) e, ao mesmo tempo, não se pode criar um método com o mesmo nome da classe sem que seja um CONSTRUTOR.
Dessa forma, acredito que o erro do código está na atribuição do tipo VOID na intenção de se criar um construtor.
GABARITO D
Segundo DEITEL Java: como programar "O Java permite que outros métodos da classe além dos seus construtores tenham o mesmo nome da classe e especifiquem tipos de retorno. Esses métodos não são construtores e não serão chamados quando um objeto da classe for instanciado".
Portanto, o erro do código não tem a ver com o método HandleFile que possui o mesmo nome da classe, pois isso não dá erro de compilação, ele só não será um método construtor e sim um método normal.
O erro está realmente no que a colega Fernanda Leal disse, quando se coloca uma exceção muito genérica (ex.: Throwable) no primeiro bloco catch, e depois as exceções específicas (ex.: FileNotFoundException) nos demais blocos catch, dá erro de compilação. Para corrigir o erro, deve-se colocar as exceções específicas primeiro, nos primeiros blocos catch, e depois as genéricas nos últimos blocos catch.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo