Checked Exception

3 respostas
evertonsilvagomesjav

Pessoal olhem esta questão:

Which can appropriately be thrown by a programmer using Java SE technology to create a desktop application? A. ClassCastException B. NullPointerException C. NoClassDefFoundError D. NumberFormatException E. ArrayIndexOutOfBoundsException Answer: D

Agora porque esta resposta sendo que nenhuma dessas exceçoes sao verificadas?

3 Respostas

D

todas as exceções são lançadas pela JVM, menos a NumberFormatException… que pode ser lançada pela API do JavaSE quando se formata números…

evertonsilvagomesjav

Como não? Pelo que eu entendi as exceções verificadas são lançadas programaticamente, e as não verificadas pela JVM. Sendo assim NumberFormatException seria uma dessas. Veja só:

java.lang.Object java.lang.Throwable java.lang.Exception java.lang.RuntimeException java.lang.IllegalArgumentException java.lang.NumberFormatException

D

Sim… todas PODEM ser lançadas programaticamente…

Mas veja pergunta… o segredo está na palavra “appropriately”… apropriadamente…

ClassCastException = lançada pela JVM quando um cast incompativel é executado…
NoClassDefFoundError = Lançada pela JVM quando não encontra uma classe no seu classpath…
ArrayIndexOutOfBoundsException = Quando um indice de array inválido é acessado…
NullPointerException = Lançada pela JVM quando uma referência aponta para um local de memória “vazio”…

A cada cast que você faz, você verifica se a referência é compatível para o novo tipo?^
Não… geralmente você sabe… e caso ela não for… a JVM se encarrega de lançar…

A cada membro de objeto que você acessa, você verifica antes se é nulo?
Não…
Mas se caso acontecer, a JVM lança o nullpointer…

A cada acesso a um indice do array, você verifica se está dentro do intervalo?
Não, caso acessar, a JVM lança indexofofbounds…

Não é apropriado você fazer isso…

Agora…

Se você estiver usando a API do javaSE, e formatar um número errado… a API do JSE lança um NumberFormatException para você… informando o erro…

Essa é a pergunta…

Which can appropriately be thrown by a programmer using Java SE technology to create a desktop application?

Criado 26 de agosto de 2010
Ultima resposta 26 de ago. de 2010
Respostas 3
Participantes 2