Instancia dentro de try catch obrigatorio

boa tarde, sou novo no forum e no java, fiz o curso fj-21 na caelum vai parecer muita burrice, mas to vendo o codigo na apostila e msm assim num consigo :frowning:

ao tentar instanciar o objeto “ContatoDAO” em um servlet o eclipse “manda” colocar dentro de um try catch, porem em outras classes ele instancia normalmente e o mais estranho é q no curso tb instanciou normalmente, ao rodar o html o eclipse lanca a classnotfoundexception, segue o codigo abaixo:

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import jdbc.dao.ContatoDAO;
import jdbc.modelo.Contato;

public class AddCttServlet extends HttpServlet{

protected void service(HttpServletRequest req, HttpServletResponse resp)
		throws ServletException, IOException {
	PrintWriter out=resp.getWriter();
	
	String nome=req.getParameter("nome");
	String endereco=req.getParameter("endereco");
	String email=req.getParameter("email");
	
	String dataEmTexto=req.getParameter("dataNascimento");
	Calendar dataNascimento=null;
	
	try{
		Date date=new SimpleDateFormat("dd/MM/yyyy").parse(dataEmTexto);
		dataNascimento=Calendar.getInstance();
		dataNascimento.setTime(date);
	}catch(ParseException e){
		out.println("Erro na conversao da data");
		return;
	}
	
	Contato cont=new Contato();
	cont.setNome(nome);
	cont.setEmail(email);
	cont.setEndereco(endereco);
	cont.setDataNascimento(dataNascimento);
	
	try {

[color=red] ContatoDAO dao = new ContatoDAO();
dao.adiciona(cont);[/color]
} catch (SQLException e) {
System.out.println(“erro no sql”);
} catch (ClassNotFoundException e) {
System.out.println(“erro notfound”);
}

na classe abaixo esta ok:

import java.sql.SQLException;
import java.util.Calendar;

import jdbc.dao.ContatoDAO;
import jdbc.modelo.Contato;

public class TestaGravacao {
public static void main(String[] args) throws SQLException, ClassNotFoundException {
Contato contato=new Contato();

	contato.setNome("dessu");
	contato.setEmail("dessu@dessu.com");
	contato.setEndereco("rua uruana, 5");
	contato.setDataNascimento(Calendar.getInstance());
	
	ContatoDAO dao=new ContatoDAO();
	dao.adiciona(contato);
	
	System.out.println("deu certo");
}

}

ambas estao dentro do mesmo projeto

Isso acontece porque seu método precisa de um tratamento de exception ou um throws, mas como o método service do HttpServlet é um override, voce nao pode modificar a assinatura do método e colocar no throws [color=red]SQLException[/color] e [color=red]ClassNotFoundException [/color]como é necessário…ele lhe obriga a usar o try catch, para o tratamento…

E na sua classe TestaGravacao no método main, observe que voce colocou o throws para o tratamento dessa exceptions…

Entendeu??

E mais uma coisa, sempre coloque seu código entre as tags [color=red]code[/color]

valeu kamikaze vo ve isso :slight_smile: