DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 
DevWare  
Novidade: DevMedia lança o DevWare - Saiba mais!


  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Java Magazine DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!

Artigo Java Magazine 34 - Tira Dúvidas

Artigo Publicado pela Java Magazine 34.

[fechar]

Você não gostou da qualidade deste conteúdo?

(opcional) Você gostaria de comentar o que não lhe agradou?

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 é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Java Magazine DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Noticias/Dicas/Artigos publicados.
O que você achou deste post?

    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!
Cursos relacionados
Publicidade
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03