Artigo Java Magazine 34 - Tira Dúvidas

Artigo Publicado pela Java Magazine 34.

Esse artigo faz parte da revista Java Magazine edição 34. Clique aqui para ler todos os artigos desta edição


Clique aqui para ler esse artigo em PDF.

 

Tira-Dúvidas

Erros de compilação e execução no Eclipse

Usando o Eclipse, observei que o compilador do IDE tem a capacidade de gerar o .class para fontes com erros, sendo que ao executar a classe, os métodos contendo erros de compilação geram uma exceção. Pergunto: isso é padrão no Eclipse? E não estariam sendo violadas especificações do Java?

Léo Ferreira

 

É padrão sim. Por exemplo, se for escrita a seguinte classe:

 

public class Teste {

    public static void main (String[] args) {

        argh();

    }

}

 

... o Eclipse reporta o erro, mas mesmo assim gera o arquivo .class.  Se for executada a classe, é mostrado este erro:

 

Exception in thread "main" java.lang.Error: Unresolved compilation problem:

The method argh() is undefined for the type Teste

at Teste.main(Teste.java:3)

 

(Antes disso, ao executar a classe será mostrado o diálogo da Figura 1, indicando a presença de erros, mas observe que o Eclipse permite continuar a execução mesmo assim).

 


Figura 1
. Executando a classe mesmo com erros de compilação

O que o compilador do Eclipse faz é adiar o erro fatal do tempo de compilação para o tempo de execução (runtime), e isso não é uma incompatibilidade. Pelo contrário, até faz sentido no contexto do comportamento dinâmico e de classloading do Java. Veja um segundo exemplo:

 

public class Teste2 {

    public static void main (String[] args) {

        if (args.length == 3) new X();

}

}

 

Aqui se a classe X existir quando Teste2 for compilada, mas não estiver disponível na hora da execução, a especificação da JVM determina que somente ao executar o "" [...] continue lendo...

Artigos relacionados