[Resolvido]Classes Filhas da Exception

10 respostas
gRoOve

Estou estudando o tratamento de exceções para OCJP e me ocorreu uma dúvida, na verdade um esclarecimento, na documentação java constam como filhas de Exception:

class java.lang.ClassNotFoundException
class java.lang.CloneNotSupportedException
class java.lang.IllegalAccessException
class java.lang.InstantiationException
class java.lang.InterruptedException
class java.lang.NoSuchFieldException
class java.lang.NoSuchMethodException
class java.lang.RuntimeException

As únicas classes verificadas pelo compilador java são estas, exceto a RuntimeException? Pergunto isso em relação a toda a árvore, desde Throwable.
Achei estranho, pois pensei que existiam muito mais classes verificadas "/

10 Respostas

rogelgarcia

Existem mais classes de exceções verificadas da API padrão de Java do que as listadas.

Onde você olhou essas informações?

ViniGodoy

São todas as filhas de Exception, incluindo as que o próprio usuário criou.

altitdb

http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Exception.html

Tem bastante aqui!

xD~~

ViniGodoy

Sem falar que algumas dessas tem exceptions filhas, como a IOException:
http://download.oracle.com/javase/1.4.2/docs/api/java/io/IOException.html

gRoOve

Entendi, obrigado.
Outra coisa, eu gostaria de simular algum código que lance uma exceção verificada, sem usar a cláusula throw, tem como? Algo assim:

void metodo() throws ExceptionChecked {
    // algum código que gere uma ExceptionChecked
}
rogelgarcia

Tente ler o conteúdo de um arquivo…

dtxk

gRoOve:
Entendi, obrigado.
Outra coisa, eu gostaria de simular algum código que lance uma exceção verificada, sem usar a cláusula throw, tem como? Algo assim:

void metodo() throws ExceptionChecked { // algum código que gere uma ExceptionChecked }

Você precisa da cláusula throw veja esse exemplo:

public class UsingExceptions3 {
	public static void main(String[] args){
		UsingExceptions3 usingExceptions3 = new UsingExceptions3();
				
					
						try {
							usingExceptions3.lancaException();
						} catch (NoSuchMethodException e) {
							// TODO Auto-generated catch block
							e.printStackTrace();
						} catch (MyTestException e) {
							// TODO Auto-generated catch block
							e.printStackTrace();
						}
					
				
			
		
	}
	
	public void lancaException() throws NoSuchMethodException, MyTestException   {
		System.err.println("Lança exption");
			
				throw new MyTestException("Error");
			
		
	}

MyTestException

public class MyTestException extends Exception{

	public MyTestException(String msg) {
		super(msg);
	}
}

Veja q quando eu dou um “throw new MyTestException(“Error”);” eu sou obrigado a declarar a clausula throws no metodo porque essa classe é “checked” ou seja extende da classe Exception e só assim tratar a exception com try/catch.

Qualquer duvida poste ai…

gRoOve

Eu não PRECISO usar o throw, basta tentar ler um arquivo por exemplo como o Rogel disse.

R

com isso aqui da pra entender certinho

gRoOve

Vlw cara, esse diagrama resume tudo mesmo, tem ele no livro da Kathy, hehe.

Criado 28 de junho de 2011
Ultima resposta 30 de jun. de 2011
Respostas 10
Participantes 6