O documento discute os tipos de erros que podem ocorrer durante a compilação e execução de código Java, como erros de sintaxe, classes não encontradas, e excessão de array. Ele também fornece dicas para prevenir e solucionar esses erros, como escrever código claro e testar frequentemente.
2. 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
3. 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.
4. 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 symbol
O 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 CLASSPATH
Class Classe is public, should be declared
in a file named Classe.java
Se 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.
7. 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çou
O 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
8. Erros mais comuns na hora de Executar
java.lang.NoClassDefFoundError :
NomeClasse
A classe que estamos tentando executar não foi encontrada.
Verifique o nome da classe e a localização
java.lang.NoSuchMethodError: main
A 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.ArrayIndexOutOfBoundsException
Tentativa de acessar vetor além do limite definido.
Verifique a logica da aplicação.
9. Erros mais comuns na hora de Executar
java.lang.NullPointerException
referência para objeto é nula
Variável de tipo objeto ou Vetor foi declarado mas não
inicializado
Verifique a logica da aplicação.
java.lang.NoSuchMethodError: main
A 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.ArrayIndexOutOfBoundsException
Tentativa de acessar vetor além do limite definido.
Verifique a logica da aplicação.
10. 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,
pequeno
Use endentação, siga convenções, nomes significativos,
documente
Escreva 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 log
Aprenda a usar um depurador para navegar no fluxo de
execução