Artigo Java Magazine 34 - Tira Dúvidas

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (0)  (0)

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

jm34.jpg

 

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).

 

image002.jpg
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();

    }"

A exibição deste artigo foi interrompida :(
Este post está disponível para assinantes MVP

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?