Dúvida em tipo de retorno de método

Olá pessoal !

Alguém poderia me explicar pq está dando erro no tipo de retorno deste método ? Ele diz que precisa ser retornado um tipo int, e eu acho q é isso q eu estou fazendo ! :???:

Esse é o método:

	/************ GRAVA DADOS ************/
	public int Gravar(String Nome, String Tel){
		
		int ID = 0;
		String query = "SELECT MAX(Cod) AS CodCad FROM Cadastro";

		try{
			ResultSet rs = stmt.executeQuery(query);
			ID = rs.getInt("CodCad");
			query = "INSERT INTO Cadastro(Cod, Nome, Telefone) VALUES(" + ID++ + "

Obrigado !

[]'s
J P" + Nome + "

Obrigado !

[]'s
J P , 

Obrigado !

[]'s
J P" + Tel + "

Obrigado !

[]'s
J P)";
			return ID;
		}
		catch(SQLException e){
			JOptionPane.showMessageDialog(null,
					"Erro ao gravar." + e,
					"Erro",
					JOptionPane.OK_OPTION);
		}
	}

Obrigado !

[]'s
J P

ta dando erro pq tu precisa ter um return fora do try tb… pq imagine assim, se ele lançar a SQLException antes do return, ele nunca vai retornar algo… entendeu? o compilador precisa ter um return q ele saiba q sempre vai ser executado… mas tu pode dar um return ID no final do método q ele vai funcionar do jeito esperado, ou seja… se nao der erro no teu try, ele vai retornar o ID q tu ta retornando dentro do try… do contrário, vai retornar o ID lá embaixo… bem, fica assim:

[code]public int Gravar(String Nome, String Tel){

  int ID = 0; 
  String query = "SELECT MAX(Cod) AS CodCad FROM Cadastro"; 

  try{ 
     ResultSet rs = stmt.executeQuery(query); 
     ID = rs.getInt("CodCad"); 
     query = "INSERT INTO Cadastro(Cod, Nome, Telefone) VALUES(" + ID++ + "" + Nome + " , " + Tel + ")"; 
     return ID; 
  } 
  catch(SQLException e){ 
     JOptionPane.showMessageDialog(null, 
           "Erro ao gravar." + e, 
           "Erro", 
           JOptionPane.OK_OPTION); 
  } 

  return ID; // só adiciona isso aqui

} [/code]

Porque dentro do catch não tem um return. Como o return está dentro do try, é possivel que este return não seja excecutado, então, vc tb tem que por um return dentro do catch, ou então coloca um finnaly com o return, pois este sempre é executado, independente de exceção ou não.

Blz?

Valeu pessoal !

Acabei adicionando o return depois do bloco try{} !

Obrigado !

[]'s
J P