Erros comuns em java

10

Click here to load reader

description

Apresenta erros comuns na fase de compilação e execução de código java.

Transcript of Erros comuns em java

Page 1: Erros comuns em java

Resolução de problemas de Compilação e Runtime

Mario Jorge [email protected]

Page 2: Erros comuns em java

Quando Ocorrem?

Durante o desenvolvimento, erros podem ocorrer em dois momentos:Na compilação

Esses ocorrem quando se executa o javac e são mais simples de corrigir

Erros que estão geralmente ligados a sintaxe

Uma boa IDE já aponta o erro e muitas vezes ate mesmo a solução

Na execução ( runtime )Esses erros ocorrem quando se executa o java e não são tão

simples de corrigir

Page 3: Erros comuns em java

Compilando o .java

Nesse momento podem ocorrer 2 tipos de erro: Erros de processamento do arquivo (parsing)

Os motivos são ponto-e-vírgula faltando, parênteses, aspas, chaves ou colchetes descasados.

IO compilador identifica apenas o arquivo e a linha onde o erro pode ter iniciado.

Um erro pode causar vários outros e nem sempre a mensagem é precisa.

Erros de compilação do código Realizada depois do parsing.

Além da linha e do arquivo, identificam a classe e método.

Geralmente as mensagens são bem claras.

Page 4: Erros comuns em java

Erros mais comuns na hora de Compilar

javac : Command not found A variável PATH não esta corretamente configurada.Inserir a pasta \bin do JDK (onde esta o javac) no PATH.

Cannot resolve symbolO compilador não encontrou a definição de um determinado

simbolo.Geralmente são erros de sintaxe ou a definição de classe

não encontrada no CLASSPATHClass Classe is public, should be declared in a file named Classe.javaSe o arquivo .java tiver uma classe publica, o nome da

classe e o nome do arquivo devem ser rigorosamente o mesmo. O mesmo erro aparece caso exista mais de uma classe publica no arquivo.

Page 5: Erros comuns em java

Erros mais comuns na hora de Compilar

Page 6: Erros comuns em java

Erros mais comuns na hora de Compilar

Page 7: Erros comuns em java

Erros de Runtime

Passando com sucesso a fase de compilação são gerados os arquivos .class (bytecodes).

Ao ocorrer um erro no momento da execução geralmente é impresso um "stack trace".Nem sempre mostra a linha de código onde o erro começouO início do trace geralmente contém informações mais úteis

Erros de runtime podem ocorrer tambem por causas externas:não existência de arquivos externos, falta de memória e

falha em comunicação de rede

Page 8: Erros comuns em java

Erros mais comuns na hora de Executar

java.lang.NoClassDefFoundError : NomeClasseA classe que estamos tentando executar não foi encontrada.Verifique o nome da classe e a localização

java.lang.NoSuchMethodError: mainA classe que estamos executando não possuí o metodo:

public static void main(String[] args){ ... }

Verifique se a classe tem o metodo e se sua sintaxe esta correta.

java.lang.ArrayIndexOutOfBoundsExceptionTentativa de acessar vetor além do limite definido.Verifique a logica da aplicação.

Page 9: Erros comuns em java

Erros mais comuns na hora de Executar

java.lang.NullPointerExceptionreferência para objeto é nula Variável de tipo objeto ou Vetor foi declarado mas não

inicializadoVerifique a logica da aplicação.

java.lang.NoSuchMethodError: mainA classe que estamos executando não possuí o metodo:

public static void main(String[] args){ ... }

Verifique se a classe tem o metodo e se sua sintaxe esta correta.

java.lang.ArrayIndexOutOfBoundsExceptionTentativa de acessar vetor além do limite definido.Verifique a logica da aplicação.

Page 10: Erros comuns em java

Dicas

Devemos criar aplicações que prevejam a possibilidade de erros devido a fatores externos e ajam da melhor forma possível

Devemos evitar que erros de lógica sobrevivam além da fase de desenvolvimento. Para evitá-los:Escreva código claro, fácil de entender, organizado,

pequenoUse endentação, siga convenções, nomes significativos,

documenteEscreva testes para todo código e rode-os com freqüência

Para achar os erros difíceis Rode código de testes se os tiver; Ative nível de

mensagens de logAprenda a usar um depurador para navegar no fluxo de

execução