Falha de compilação x exceção - questões do SCJP

1 resposta
C

Pessoal, no livro as vezes aparecem duas opções de respostas

Compilation fails
An exception is thrown at runtime

Acontece que eu as vezes analiso o problema, entendo o código mas na hora de marcar a lei de Murphy manda: se a resposta é compilation fails eu marco exception e se é exception, marco compilation fails. Acho que ainda não está mto claro, o que pode gerar um, e o que pode gerar outro.
Por exemplo: variável de método não inicializada - compilation fails - atribuir array bidimensional à dimensional - exception.
Tem alguma regra digamos mais genérica pra escolher entre estas opções?

1 Resposta

sergiolopes

E na prova ainda é muito comum ele te perguntar qual foi o erro de compilação ou qual foi a exception lançada.

Não existem regras para decorar, mas algumas dicas podem ajudar. O compilador é responsável por verificar sintaxe e tipos (Java é uma linguagem fortemente tipada). Mas o compilador não executa o código, então ele não sabe valores de variáveis, parâmetros ou qualquer outra coisa que possa estar condicionada ao momento de execução.

  • Deixar de inicializar variável? Erro de compilação.

  • Acessar posição inválida no array? ArrayIndexOutOfBoundsException (o compilador não sabe o valor que você vai passar)

  • Atribuir tipos errados? Erro de compilação. (incluindo jogar um array bidimensional em um unidimensional; erro de compilação, não exception)

  • Abrir um arquivo inexistente? FileNotFoundException.

  • Chamar um método, atributo ou construtor que não existe? Erro de compilação.

  • Fazer um casting inválido? Pode ser erro de compilação se o casting obviamente violar o sistema de tipos (um ArrayList nunca pode ser uma String, nem adianta fazer casting). Ou ClassCastException se na hora da execução o objeto não é do tipo certo.

E vários outros… é ir pegando o jeito mesmo :slight_smile:

Criado 15 de janeiro de 2011
Ultima resposta 15 de jan. de 2011
Respostas 1
Participantes 2