Criando a classe DAOException

Esse é um exercício opcional da apostila fj-21 de desenvolvimento web com java.

O exercício propõe o seguinte:
2) Crie uma classe chamada DAOException que estenda de RuntimeException e utilize-a no seu ContatoDAO.

A classe ContatoDAO que fiz está aqui:

package br.com.caelum.jdbc.modelo.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;

import br.com.caelum.jdbc.ConnectionFactory;
import br.com.caelum.jdbc.modelo.Contato;

public class ContatoDAO {
	private Connection connection;

	public ContatoDAO() {
		this.connection = new ConnectionFactory().getConnection();
	}

	public void adiciona(Contato contato) {
		String sql = "insert into contatos (nome,email,endereco,dataNascimento) values (?,?,?,?)";
		try {
			PreparedStatement stmt = connection.prepareStatement(sql);

			stmt.setString(1, contato.getNome());
			stmt.setString(2, contato.getEmail());
			stmt.setString(3, contato.getEndereco());
			stmt.setDate(4, new java.sql.Date(Calendar.getInstance()
					.getTimeInMillis()));

			stmt.execute();
			stmt.close();
		} catch (SQLException e) {
			throw new RuntimeException();
		}
	}

	public List<Contato> getLista() {
		try {
			List<Contato> contatos = new ArrayList<Contato>();
			PreparedStatement stmt = this.connection
					.prepareStatement("select * from contatos");
			ResultSet rs = stmt.executeQuery();

			while (rs.next()) {
				// criando o objeto contato
				Contato contato = new Contato();
				contato.setNome(rs.getString("nome"));
				contato.setEmail(rs.getString("email"));
				contato.setEndereco(rs.getString("endereco"));

				// Montando a data através de Calendar
				Calendar data = Calendar.getInstance();
				data.setTime(rs.getDate("dataNascimento"));
				contato.setDataNascimento(data);

				// Adicionando o objeto a lista
				contatos.add(contato);
			}

			rs.close();
			stmt.close();
			return contatos;
		} catch (SQLException e) {
			throw new RuntimeException(e);
		}

	}
}

Mas, não tenho idéia de como fazer essa classe DAOException. Caso alguém tenha feito, pode me sugerir alguma(s) forma(s) de como implementá-la?

Abraço a todos

Crie uma classe que estende java.lang.RuntimeException. Qual a dúvida???

como fazer?

Bom acredito que seja isto…

package br.com.edesignerbrasil.execao;

//Aqui a tua Classe que herda a classe RuntimeException
public class EdesignerBrasilException extends RuntimeException {

    //Aqui o construtor default para a classe
    public EdesignerBrasilException() {
        super("Causa do Erro Desconhecida");
    }

    //Aqui a sobreescrita do construtor que recebe como parametro uma String 
    public EdesignerBrasilException(String message) {
        super(message);
    }

Bom acho que é praticamente isto!

vou tentar aqui :smiley:

Fica mais ou menos assim

package br.com.caelum.jdbc.dao;

import java.sql.SQLException;

public class DAOException extends RuntimeException {
        public void getException(Exception e){
                System.out.println(e);
        }
}