Dúvida sobre RuntimeException

4 respostas
R

Pessoal, estou estudando a apostila gratuita da Caelum FJ21…e la tem um exercício que diz assim:

  1. Crie uma classe chamada DAOException que estenda de RuntimeException e utilize-a no seu ContatoDAO.

como faço isso ? esse exercício fica na página 23…sinceramente, eu sei declarar exceções com blocos try, catch, agora nunca fiz uma classe só com esse objetivo… se alguem conhece essa apostila e sabe fazer essa questão por favor preciso de um help, não faço a menor idéia de como começar essa classe (aliás, sei que tem que extender RuntimeException, hehe…a própria questão diz isso)…

então…aguardo ajudas =D

4 Respostas

el_loko

rof20004:
Pessoal, estou estudando a apostila gratuita da Caelum FJ21…e la tem um exercício que diz assim:

  1. Crie uma classe chamada DAOException que estenda de RuntimeException e utilize-a no seu ContatoDAO.

como faço isso ? esse exercício fica na página 23…sinceramente, eu sei declarar exceções com blocos try, catch, agora nunca fiz uma classe só com esse objetivo… se alguem conhece essa apostila e sabe fazer essa questão por favor preciso de um help, não faço a menor idéia de como começar essa classe (aliás, sei que tem que extender RuntimeException, hehe…a própria questão diz isso)…

então…aguardo ajudas =D

Que parte vc não entendeu?

Vc precisa criar uma classe como qualquer outra, porém essa classe deve herdar de RuntimeException.

public class DAOException extends RuntimeException {}...

Ao fazer isso automaticamente vc poderá lançar exceções personalizadas de acordo com a sua necessidade em tempo de execução.

R

Essa parte de extender a classe Runtime eu entendi…a questão é essas excessões personalizadas…tem como me da um exemplo ? não sei bem como personalizar uma excessão…por exemplo a SQLException…não sei como colocar ela nessa classe nova…

el_loko

Você pode usar o construtor, por exemplo:

@SuppressWarnings("serial")
public class DAOException extends Exception {

	/**
	 * Construtor default
	 */
	public DAOException() {
	}

	/**
	 * Construtor
	 * @param message
	 */
	public DAOException(String message) {
		super(message);
	}

	/**
	 * Construtor
	 * @param cause
	 */
	public DAOException(Throwable cause) {
		super(cause);
	}

	/**
	 * Construtor
	 * @param message
	 * @param cause
	 */
	public DAOException(String message, Throwable cause) {
		super(message, cause);
	}

}

E no seu método main, o código ficaria assim:

try{
    //algum código...
} catch(Exception ex) {
    throw new DAOException(ex);
}
R

Valeu, vo testar isso, agora to no trampo =D. Mas acredito que vá funcionar, ja vi essas coisas em algum lugar ^^.

Criado 28 de junho de 2010
Ultima resposta 29 de jun. de 2010
Respostas 4
Participantes 2