Instancia dentro de try catch obrigatorio

2 respostas
D

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("[email removido]");
	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

2 Respostas

KamikazeBr

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]

D

valeu kamikaze vo ve isso :slight_smile:

Criado 4 de fevereiro de 2011
Ultima resposta 4 de fev. de 2011
Respostas 2
Participantes 2