SlideShare uma empresa Scribd logo
1 de 10
Baixar para ler offline
Resolução de problemas de
Compilação e Runtime
Mario Jorge Pereira
mariojp@gmail.com
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
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.
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.
Erros mais comuns na hora de Compilar
Erros mais comuns na hora de Compilar
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
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.
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.
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

Mais conteúdo relacionado

Destaque

Polimorfismo java
Polimorfismo javaPolimorfismo java
Polimorfismo javaFAFICA
 
Matemática Discreta - Parte IV teoria dos-conjuntos
Matemática Discreta - Parte IV teoria dos-conjuntosMatemática Discreta - Parte IV teoria dos-conjuntos
Matemática Discreta - Parte IV teoria dos-conjuntosUlrich Schiel
 
Exemplos de Design Patterns em Java
Exemplos de Design Patterns em JavaExemplos de Design Patterns em Java
Exemplos de Design Patterns em Javaalexmacedo
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesRodrigo Cascarrolho
 

Destaque (6)

Aula 7 diagramas_classes2
Aula 7 diagramas_classes2Aula 7 diagramas_classes2
Aula 7 diagramas_classes2
 
Apostila matemática discreta
Apostila matemática discretaApostila matemática discreta
Apostila matemática discreta
 
Polimorfismo java
Polimorfismo javaPolimorfismo java
Polimorfismo java
 
Matemática Discreta - Parte IV teoria dos-conjuntos
Matemática Discreta - Parte IV teoria dos-conjuntosMatemática Discreta - Parte IV teoria dos-conjuntos
Matemática Discreta - Parte IV teoria dos-conjuntos
 
Exemplos de Design Patterns em Java
Exemplos de Design Patterns em JavaExemplos de Design Patterns em Java
Exemplos de Design Patterns em Java
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas Eficientes
 

Semelhante a Erros comuns em java

Aulas de Java Avançado 1 - Faculdade iDez 2010
Aulas de Java Avançado 1 - Faculdade iDez 2010Aulas de Java Avançado 1 - Faculdade iDez 2010
Aulas de Java Avançado 1 - Faculdade iDez 2010Maurício Linhares
 
Poo1 aula 2 - java - apresentação do netbeans e 1º programa
Poo1   aula 2 - java - apresentação do netbeans e 1º programaPoo1   aula 2 - java - apresentação do netbeans e 1º programa
Poo1 aula 2 - java - apresentação do netbeans e 1º programaDenis Sobrenome
 
Poo1 aula 2 - java - apresentação do netbeans e 1º programa
Poo1   aula 2 - java - apresentação do netbeans e 1º programaPoo1   aula 2 - java - apresentação do netbeans e 1º programa
Poo1 aula 2 - java - apresentação do netbeans e 1º programaDenis Sobrenome
 
Apostila: Curso de java I
Apostila: Curso de java IApostila: Curso de java I
Apostila: Curso de java IVerônica Veiga
 
Java 02 Iniciando Uso Java
Java 02 Iniciando Uso JavaJava 02 Iniciando Uso Java
Java 02 Iniciando Uso JavaRegis Magalhães
 
java.io - fluxos (streams) e arquivos
java.io - fluxos (streams) e arquivosjava.io - fluxos (streams) e arquivos
java.io - fluxos (streams) e arquivosMarcello Thiry
 
Webinar: Debugging em Linux embarcado
Webinar: Debugging em Linux embarcadoWebinar: Debugging em Linux embarcado
Webinar: Debugging em Linux embarcadoEmbarcados
 
Curso de Java (Parte 2)
 Curso de Java (Parte 2) Curso de Java (Parte 2)
Curso de Java (Parte 2)Mario Sergio
 
POO - Unidade 1 (complementar) - Introdução a Java e UML (versão draft 01)
POO -  Unidade 1 (complementar) - Introdução a Java e UML (versão draft 01)POO -  Unidade 1 (complementar) - Introdução a Java e UML (versão draft 01)
POO - Unidade 1 (complementar) - Introdução a Java e UML (versão draft 01)Marcello Thiry
 
Criando e Lendo Arquivos TXT com a Classe File
Criando e Lendo Arquivos TXT com a Classe FileCriando e Lendo Arquivos TXT com a Classe File
Criando e Lendo Arquivos TXT com a Classe FilePaulo Brito
 
Spring framework 2.5
Spring framework 2.5Spring framework 2.5
Spring framework 2.5Diego Pacheco
 
Excecoes
ExcecoesExcecoes
ExcecoesEMSNEWS
 

Semelhante a Erros comuns em java (20)

Java
JavaJava
Java
 
Aulas de Java Avançado 1 - Faculdade iDez 2010
Aulas de Java Avançado 1 - Faculdade iDez 2010Aulas de Java Avançado 1 - Faculdade iDez 2010
Aulas de Java Avançado 1 - Faculdade iDez 2010
 
1707331929 ltp iv java original
1707331929 ltp iv   java original1707331929 ltp iv   java original
1707331929 ltp iv java original
 
Introducao logica2
Introducao logica2Introducao logica2
Introducao logica2
 
Poo1 aula 2 - java - apresentação do netbeans e 1º programa
Poo1   aula 2 - java - apresentação do netbeans e 1º programaPoo1   aula 2 - java - apresentação do netbeans e 1º programa
Poo1 aula 2 - java - apresentação do netbeans e 1º programa
 
Poo1 aula 2 - java - apresentação do netbeans e 1º programa
Poo1   aula 2 - java - apresentação do netbeans e 1º programaPoo1   aula 2 - java - apresentação do netbeans e 1º programa
Poo1 aula 2 - java - apresentação do netbeans e 1º programa
 
Apostila: Curso de java I
Apostila: Curso de java IApostila: Curso de java I
Apostila: Curso de java I
 
Java 02 Iniciando Uso Java
Java 02 Iniciando Uso JavaJava 02 Iniciando Uso Java
Java 02 Iniciando Uso Java
 
01 introducao ao java
01   introducao ao java01   introducao ao java
01 introducao ao java
 
java.io - fluxos (streams) e arquivos
java.io - fluxos (streams) e arquivosjava.io - fluxos (streams) e arquivos
java.io - fluxos (streams) e arquivos
 
Java1
Java1Java1
Java1
 
Webinar: Debugging em Linux embarcado
Webinar: Debugging em Linux embarcadoWebinar: Debugging em Linux embarcado
Webinar: Debugging em Linux embarcado
 
Curso de Java (Parte 2)
 Curso de Java (Parte 2) Curso de Java (Parte 2)
Curso de Java (Parte 2)
 
POO - Unidade 1 (complementar) - Introdução a Java e UML (versão draft 01)
POO -  Unidade 1 (complementar) - Introdução a Java e UML (versão draft 01)POO -  Unidade 1 (complementar) - Introdução a Java e UML (versão draft 01)
POO - Unidade 1 (complementar) - Introdução a Java e UML (versão draft 01)
 
01 java fundamentos
01 java fundamentos01 java fundamentos
01 java fundamentos
 
Criando e Lendo Arquivos TXT com a Classe File
Criando e Lendo Arquivos TXT com a Classe FileCriando e Lendo Arquivos TXT com a Classe File
Criando e Lendo Arquivos TXT com a Classe File
 
Manual
ManualManual
Manual
 
Spring framework 2.5
Spring framework 2.5Spring framework 2.5
Spring framework 2.5
 
Excecoes
ExcecoesExcecoes
Excecoes
 
Aula1
Aula1Aula1
Aula1
 

Mais de Mario Jorge Pereira (20)

Educacao e Inteligencia Artificial Generativa
Educacao e Inteligencia Artificial GenerativaEducacao e Inteligencia Artificial Generativa
Educacao e Inteligencia Artificial Generativa
 
Labs Jogos Java
Labs Jogos JavaLabs Jogos Java
Labs Jogos Java
 
Java www
Java wwwJava www
Java www
 
Html
HtmlHtml
Html
 
HTTP
HTTPHTTP
HTTP
 
Lógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e Algoritmos
 
Guia rapido java v2
Guia rapido java v2Guia rapido java v2
Guia rapido java v2
 
Guia Rápido de Referência Java
Guia Rápido de Referência JavaGuia Rápido de Referência Java
Guia Rápido de Referência Java
 
Android por onde começar? Mini Curso Erbase 2015
Android por onde começar? Mini Curso Erbase 2015 Android por onde começar? Mini Curso Erbase 2015
Android por onde começar? Mini Curso Erbase 2015
 
Java Nuvem Appengine
Java Nuvem AppengineJava Nuvem Appengine
Java Nuvem Appengine
 
Mini curso Android
Mini curso AndroidMini curso Android
Mini curso Android
 
Java Server Faces
Java Server FacesJava Server Faces
Java Server Faces
 
Minicurso Android
Minicurso AndroidMinicurso Android
Minicurso Android
 
Android, por onde começar?
Android, por onde começar?Android, por onde começar?
Android, por onde começar?
 
Hands-On Java web passando por Servlets, JSP, JSTL, JDBC, Hibernate, DAO, MV...
Hands-On Java web passando por  Servlets, JSP, JSTL, JDBC, Hibernate, DAO, MV...Hands-On Java web passando por  Servlets, JSP, JSTL, JDBC, Hibernate, DAO, MV...
Hands-On Java web passando por Servlets, JSP, JSTL, JDBC, Hibernate, DAO, MV...
 
Android e Cloud Computing
Android e Cloud ComputingAndroid e Cloud Computing
Android e Cloud Computing
 
Threads
ThreadsThreads
Threads
 
RMI (Remote Method Invocation)
RMI (Remote Method Invocation) RMI (Remote Method Invocation)
RMI (Remote Method Invocation)
 
Socket
SocketSocket
Socket
 
Java e Cloud Computing
Java e Cloud ComputingJava e Cloud Computing
Java e Cloud Computing
 

Último

Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!Centro Jacques Delors
 
Slides 9º ano 2024.pptx- Geografia - exercicios
Slides 9º ano 2024.pptx- Geografia - exerciciosSlides 9º ano 2024.pptx- Geografia - exercicios
Slides 9º ano 2024.pptx- Geografia - exerciciosGentil Eronides
 
Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)Centro Jacques Delors
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptssuser2b53fe
 
LENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretaçãoLENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretaçãoLidianePaulaValezi
 
Sistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturasSistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturasrfmbrandao
 
Quiz | Dia da Europa 2024 (comemoração)
Quiz | Dia da Europa 2024  (comemoração)Quiz | Dia da Europa 2024  (comemoração)
Quiz | Dia da Europa 2024 (comemoração)Centro Jacques Delors
 
Sopa de letras | Dia da Europa 2024 (nível 1)
Sopa de letras | Dia da Europa 2024 (nível 1)Sopa de letras | Dia da Europa 2024 (nível 1)
Sopa de letras | Dia da Europa 2024 (nível 1)Centro Jacques Delors
 
AULÃO de Língua Portuguesa para o Saepe 2022
AULÃO de Língua Portuguesa para o Saepe 2022AULÃO de Língua Portuguesa para o Saepe 2022
AULÃO de Língua Portuguesa para o Saepe 2022LeandroSilva126216
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...azulassessoria9
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxLuizHenriquedeAlmeid6
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...PatriciaCaetano18
 
INTERTEXTUALIDADE atividade muito boa para
INTERTEXTUALIDADE   atividade muito boa paraINTERTEXTUALIDADE   atividade muito boa para
INTERTEXTUALIDADE atividade muito boa paraAndreaPassosMascaren
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfcomercial400681
 
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docGUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docPauloHenriqueGarciaM
 
M0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxM0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxJustinoTeixeira1
 
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...MariaCristinaSouzaLe1
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmicolourivalcaburite
 
Apresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União EuropeiaApresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União EuropeiaCentro Jacques Delors
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdfmarlene54545
 

Último (20)

Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
 
Slides 9º ano 2024.pptx- Geografia - exercicios
Slides 9º ano 2024.pptx- Geografia - exerciciosSlides 9º ano 2024.pptx- Geografia - exercicios
Slides 9º ano 2024.pptx- Geografia - exercicios
 
Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
LENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretaçãoLENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretação
 
Sistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturasSistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturas
 
Quiz | Dia da Europa 2024 (comemoração)
Quiz | Dia da Europa 2024  (comemoração)Quiz | Dia da Europa 2024  (comemoração)
Quiz | Dia da Europa 2024 (comemoração)
 
Sopa de letras | Dia da Europa 2024 (nível 1)
Sopa de letras | Dia da Europa 2024 (nível 1)Sopa de letras | Dia da Europa 2024 (nível 1)
Sopa de letras | Dia da Europa 2024 (nível 1)
 
AULÃO de Língua Portuguesa para o Saepe 2022
AULÃO de Língua Portuguesa para o Saepe 2022AULÃO de Língua Portuguesa para o Saepe 2022
AULÃO de Língua Portuguesa para o Saepe 2022
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
 
INTERTEXTUALIDADE atividade muito boa para
INTERTEXTUALIDADE   atividade muito boa paraINTERTEXTUALIDADE   atividade muito boa para
INTERTEXTUALIDADE atividade muito boa para
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docGUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
 
M0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxM0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptx
 
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmico
 
Apresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União EuropeiaApresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União Europeia
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
 

Erros comuns em java

  • 1. Resolução de problemas de Compilação e Runtime Mario Jorge Pereira mariojp@gmail.com
  • 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.
  • 5. Erros mais comuns na hora de Compilar
  • 6. Erros mais comuns na hora de Compilar
  • 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