Resumo de exceções e erros

18 respostas
anderson.bonavides

ArrayIndexOutOfBoundsException - (Pela JVM)
Lançado ao se tentar acessar uma posição inválida do array.
Ex:

class MeuArray{ Public static void main(String[] args){ int[] a = new int[3]; a[1] = 1; //ok a[-1] = 2; //lança exceção a[4] = 3; //lança exceção } }

ClassCastException - (Pela JVM)
Lançado ao se tentar converter uma variável em um tipo que não passe no teste É UM.
Ex:

class Base{...} Class Sub extends Base{...} Class Teste{ public static void main(String[] args){ Sub s = new Sub(); Base b = s; //ok Sub z = (Sub)b; //lança exceção // a ultima linha não passa no teste É Um, ou seja, o pai não pode ser convertido pro //filho. Mas o filho pode ser convertido pro pai com o na segunda linha. } }

NullPointerException - (Pela JVM)
Lançada ao se tentar acessar um objeto com uma variável de referencia cujo valor atual seja null.
Ex:

class Npe{ static String s; public static void main(String[] args){ System.out.println(s.lenght()); } }

NumberFormatException - (Programaticamente)
Lançada quando um método que converte uma String em um número recebe uma String que não consegue converter.
Ex:

class Teste{ public static void main(String[] args){ String nome = qualquer; int i = Integer.parseInt(nome); } }

AssertionError - (Programaticamente)
Lançada quando o teste booleano de uma instrução retorna false.
Ex:

class Assertivas{ //suponha que o método receba algum valor false. public void teste(boolean n){ assert(n); //mais linha de codigo aki? } }

ExceptionInitializerError - (Pela JVM)
Lançada ao se tentar inicializar uma variável estática de um bloco de inicialização.
Ex:

class Teste{ int i; String nome; static n = 0; public static void main(String[] args){ System.out.println(? Valor de n = ?+ n); } }

StackOverflowError - (Pela JVM)
Normalmente lançada quando um método faz recursões profundas demais.
Ex:

class Recursivo{ void recursão(){ recursão(); } }

AritimeticException - (Pela JVM)
Lançado quando uma divisão por zero é relizada
Ex:

class Divisão{ public static void main(String[] args){ int i = 4; System.out.println(?Resultado =? + i/0); } }

NoClassDefFoundError
Lançada quando o JVM não consegue encontrar uma classe de que precisa, por causa de um erro de linha de comando, uma questão referente ao classpath ou um arquivo .class que esteja faltando.
Ex:

IllegalArgumentException
É lançado quando um método recebe um argumento formatado de forma diferente.
Ex:

IllegalStateExeption
É lançado quando o estado do ambiente não bate com a operação sendo tentada, por exemplo, usando um scanner que já foi fechado.
Ex:

[u][i][b]Galera fiz umas listinha das exceções pra ajudar a todos mas ficou faltando umas ai. Umas peguei no livro outras criei. Por tanto está aberto a sugestões. Alguêm poderia corrigir as que estiverem erradas e completar as que faltam?
Agradeço a todos que ajudarem. Pois isso não é só pra mim é pra todos…

Qualquer erro reclamem com o word
:lol:

[/b][/i][/u]

18 Respostas

LPJava

class MeuArray{ public static void main(String[] args){ int[] a = new int[3]; a[1] = 1; //ok a[-1] = 2; //lança exceção a[4] = 3; //lança exceção } }

olha na linha 5 lança uma excecao por vc usar numero negativo, e na linha 6 é pq realmente a posicao nao existe… no array nao é permitivo valor < 0.
Somente para ficar mais claro.

No exame ele cobra bastante essas aqui:
-NumberFormatException,ClassCastException,ArrayIndexOutOfMemoryException,AssertionError.

AS perguntas que envolvia exceções ele sempre colocar uma dessas como opções…

S

Não seria OutOfBounds?

R

Só um detalhe que vcs tão falando aih sobre ArrayIndexOutOfMemoryException.

Essa exceção sequer existe. A correta é ArrayIndexOutOfBoundsException.

Além disso, para o exame também é importante saber quais exceções são lançadas programaticamente e quais são lançadas pela JVM.

Das que foram citadas até agora:

JVM:
ArrayIndexOutOfBoundsException
ClassCastException
NoClassDefFoundError
NullPointerException
AssertionError
ExceptionInInitializerError
StackOverflowError

Programaticamente:
IllegalArgumentException
IllegalStateExeption
NumberFormatException

anderson.bonavides

É realmente estão corretos axo q na hora da digitação eu me atrapalhei todo.
=]

LPJava

RafaelVS:
Só um detalhe que vcs tão falando aih sobre ArrayIndexOutOfMemoryException.

Essa exceção sequer existe. A correta é ArrayIndexOutOfBoundsException.

Além disso, para o exame também é importante saber quais exceções são lançadas programaticamente e quais são lançadas pela JVM.

Das que foram citadas até agora:

JVM:
ArrayIndexOutOfBoundsException
ClassCastException
NoClassDefFoundError
NullPointerException
AssertionError
ExceptionInInitializerError
StackOverflowError

Programaticamente:
IllegalArgumentException
IllegalStateExeption
NumberFormatException

uhahu tem razao… nem reaparei a esse detalhe… rs

Vecchiato
Uma dúvida de um cara recém estudante para SCJPtem que decorar essas exceções?

=)~

Depois de ler o primeiro da katy sierra deu aquela sensação Pq q eu fui me meter de fazer essa prova hehehe =)

mas dai é que ta se for facil não tem graça =)
R
<blockquote><div class="quote-author">Vecchiato:</div>Uma dúvida de um cara recém estudante para SCJP…

tem que decorar essas exceções?

=)~

Depois de ler o primeiro da katy sierra deu aquela sensação “Pq q eu fui me meter de fazer essa prova” hehehe =)

mas dai é que ta… se for facil não tem graça =)</blockquote>

O ideal eh que vc aprenda. Mas se vc conseguir decorar tudo, tb serve para a prova. Você precisa saber todas essas exceções pois com certeza elas estarão lá na prova (principalmente as lançadas pela JVM, como NullPointerException e ClassCastException, pois estão misturadas em diversas questões).

Vecchiato

Eu pensava que bastava saber que lançava excessão, só não sabia que tambem tinha que saber qual excessão é.
mas tudo bem… agente estuda :slight_smile: “quem ta na chuva é pra se molhar”

R

Vecchiato:
Eu pensava que bastava saber que lançava excessão, só não sabia que tambem tinha que saber qual excessão é.
mas tudo bem… agente estuda :slight_smile: “quem ta na chuva é pra se molhar”

Vc precisa saber qual excecao eh pois tem questao que pergunta diretamente “vai ser lancada a excecao X, ou Y, ou Z, etc…”. Portanto, alem de saber que vai lancar excecao, em algumas questoes tb precisa saber qual sera lancada.

rafaelglauber

http://www.unix.org.ua/orelly/java/langref/ch09_04.htm

rafaelglauber

atendendo a reclamações retirei as imagens, pensei que iria agradar, desculpem. :smiley:

anderson.bonavides

Axo que o matérial ta bem esxplicadinho e se alguêm me ajudar a terminar com os que faltam vai ficar blz!
Outra coisa pra o amigo ai que foi se meter com a prova liga não… Com um tempo fica tudo na mente. Isso aconteceu comigo. Também tive a mesma preocupação…
=]

R

Cara, essas imagens aih soh vao complicar o pessoal.

O pessoal que estiver estudando para a certificação SCJP só precisa se preocupar em conhecer basicamente as exceções listadas inicialmente pelo anderson.bonavides e saber quais são lancadas pela JVM ou programaticamente.

Não precisam conhecer todas essas excecoes das imagens.

gugaa_df

vou fazer o exame dia 21, ja aprendi quais que sao lancadas pela jvm e quais sao lancadas pelo programador…
eu gostaria agora de aprender a hierarqua entre essas classes. pq acho que no exame deve cobrar tb ne?
quais que sao subclasses de quais classes…

rafaelglauber

veja o link que coloquei num post acima.

anderson.bonavides

Não sei se essa hierarquia é tão importante assim não. Sei que é importante saber quem eh subclasse de Error e de Exception, e dentro de Exception saber quem é programaticamente e quem é pelo JVM é importante também saber que RuntimeException é exceção não checadas.

Só não sei dizer se exceções não checadas é a mesma coisa que lançada pela JVM ou programaticamente.
Alguêm aproveita e responde essa?

:roll:

R

Nao checadas n tem nada a ver com lancada pela JVM ou programaticamente.

NullPointerException, ClassCastException e ArithmeticException são exemplos de excecoes que sao nao checadas e sao lancadas pela JVM.

IllegalArgumentException, IllegalStateException e NumberFormatException são exemplos de excecoes que sao nao checadas e sao lancadas programaticamente.

A noção de nao checadas soh diz respeito ao fato de vc não ser obrigado a tratar/lancar (não precisar envolver num try/catch ou declarar throws).

anderson.bonavides

Compreendido…

=]

Criado 14 de novembro de 2007
Ultima resposta 16 de nov. de 2007
Respostas 18
Participantes 7