Exceções verificadas e não verificadas, como memorizar isso tudo?

8 respostas
M
Sempre erro questões como essa
class Exception1 extends Exception{}
class Exception2 extends Exception{}

public class MYE{
  public static void main(String args[]){
    try{
        try{
            throw new Exception2();
        }catch(Exception1 e1){
           System.out.print("Ex1 ");
        }catch(Exception2 e2){
           System.out.print("Ex2 ");
        }finally{
           System.out.print("Fi-1 ");
        }
    }catch(Exception e){
       System.out.print("Ex ");
    }finally{
       System.out.print("Fi-2 ");
    }
  }
}

O problema é que se eu declarar uma ClassCastExcepion ai no meio compila, ou seja, não estou sabendo diferenciar uma exceção verificada de uma não verificada.

Como eu faço pra guardar isso tudo sendo que na api de exceções tem mais de 20 classes que estendem tanto de java.lang.Exception quanto de java.lang.RuntimeException?

Pelo menos, precisava saber das mais pedidas no exame.

8 Respostas

A

Ola, realmente é uma duvida que no principio perturba um pouco, mas veja so uma dica,

As excessoes que sao checadas, ou seja extendem de java.lang.Exception, quando aparecem no codigo, o desenvolvedor é obrigado a trata-las, por exemplo criando um try/catch ou enviar throws para que o método chamador as trate, as exceçoes que nao sao checadas, ou seja, extendem de RuntimeException, sao exceçoes que podem ocorrer em situacoes normais na jvm e por isso o programador nao tem obrigaçao de as tratar, "na verdade tem, mas a jvm nao nos obriga a isso!" um exemplo de unchecked exception seria...
public String[] variavel = new String[10];
String valor = variavel[10];

Parece um codigo comum mas nao é… ele ira lançar uma unchecked exception, pois estamos tentando acessar a posicao numero 11 de um array… pois como os indices nos arrays começam a partir de zero, ao tentar fazer o codigo acima na verdade estaremos na posicao 11, o que vai fazer com que a jvm dispare uma exceçao. basicamente a diferença é estra, excessoes checadas devem ser tratadas, ou delegadas para que outro as trate, e excecoes nao checadas, sao aquelas que podem ocorrer e voce nao tem obrigacao de as tratar, algumas excecoes checadas…:

algumas unchecked exceptions:

Abraços

André Martins

M

É, vai ser osso…
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/RuntimeException.html

http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Exception.html

A

Rapaz… boa sorte, rs

Realmente tem um mundo de excecoes ali, so que uma coisa que te recomendo é nao perder muito tempo com as exceçoes, pois na certificacao vai haver outras coisas mais importantes para voce se preocupar... como voce esta se preparando? qual livro esta lendo? voce ja fez algum teste para certificacao?

Abraços

André Martins

M

Já li o livro da kathy sierra, fiz vários mocks que encontrei num tópico aqui do guj, baixei alguns programas semelhantes ao simulado da scjp (whizlabs, master exam,…) e sempre dou uma olhada nas dúvidas postadas aqui no Guj. Sem contar que já havia estudado java na facu, mas confesso que não utilizava de todo conceito de linguagem orientada a objeto.

A

para se dar bem na certificacao voce precisa conhecer justamente os minimos da linguagem, por exemplo, tratamento de arrays, de collections, tipos, controle de fluxo, este tipo de coisa, mas na grande maioria sao assuntos bem simples da linguagem, mas que acabamos por ignorar as vezes e isso acaba trazendo grandes problemas a frente, por isso a sun fez a prova baseada nos conceitos da linguagem basicamente, se sua média foi aceitavel nestes testes, voce pode passar tranquilamente que vai dar tudo certo

Boa Sorte!

André

M

E é justamente nos conceitos bem básicos que erro muita coisa, geralmente em termos de collection, threads, O.O eu vou bem…

A

Eu tambem tive este tipo de problema, mas o melhor a fazer é estudar um livro especifico para a certificacao, assim voce nao ganha surpresas, quando vai passar sua certificacao? manda uma mp se precisar que posso te dar alguma ajuda com material.

Abraços
André

M

Meu voucher tem validade até junho/10 depois te mando meu email por mp, obrigado pelo incentivo!

Criado 20 de setembro de 2009
Ultima resposta 21 de set. de 2009
Respostas 8
Participantes 2