Erro missing return statement

[code]public String getCombo() throws SQLException, ClassNotFoundException{

 // realiza o tratamento de erros.
//try
//{
    // recupera uma conexao com o banco de dados.
    Connection conexao = Util.getConexao();

    // sql de insercao.
    String sql = "select * from \"Estados\"";

    // executa o SQL.
    Statement stmt = conexao.createStatement();

    ResultSet rs = stmt.executeQuery(sql);

    combo = "";
    while (rs.next()) {
        combo = combo + "<option value='"+rs.getString("EstadoID")+"'>"+rs.getString("Estado")+"</option>";
    }
    rs.close();
    conexao.close();
    return combo;
}

public String getAltDel() throws SQLException, ClassNotFoundException{
Connection conexao = Util.getConexao();
String sql = “select * from “Estados””;
Statement stmt = conexao.createStatement();

    ResultSet rs = stmt.executeQuery(sql);

    altdel = "";
    while (rs.next()) {
        altdel = altdel + " <tr><td align=\"left\" class=\"tTxt1\"><li>"+ rs.getString("Estado") + "</li></td><td align=\"right\"><table width=\"150\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td align=\"center\"><a  >Alterar</a></td><td align=\"center\"><a  >Deletar</a></td></tr></table></td></tr>";
    rs.close();
    conexao.close();
    return altdel;
    }

}[/code]
Tenho esses dois metodos no primeiro getCombo ele não erro no segundo ele da o erro “missing return statement” alguem sabe o porque e como resolver. Obigado

O que o teu método retorna se não entrar no while?

Obrigado!!!
Resolvido havia um } no lugar errado

O erro acontece porque o return está dentro da condição do while.
Qual o seu objetivo colocando o return dentro de um loop? Desta forma, os itens do resultSet não serão percorridos…
Sugiro que analise melhor este while.

Ok, não atualizei aqui…

Cara, nao acho uma boa pratica sair espalhando “return” pelo codigo. Sempre que posso eu implemento apenas 1 (um) return em meus metdos e com isso eu avito esse problema de “missim return”.
Veja o que acredito que nao deva ser feito:

public String meuMetodo(){
      
    while(condicao1){
        if(codicao2){
            return "valor2"; 
        }
        else if(condicao3){
            return "valor3"; 
        }
        else if(condicao4){
            return "valor4"; 
        }
        ...
        else if(condicao1000){
            return  "valor1000"; 
        }
 
    }
    return null;
}

Agora como eu geralmente programo:

public String meuMetodo(){
   String minhaString = null;
    
    while(condicao1){
        if(codicao2){
            minhaString  = "valor2"; 
        }
        else if(condicao3){
            minhaString  = "valor3"; 
        }
        else if(condicao4){
            minhaString  = "valor4"; 
        }
        ...
        else if(condicao1000){
            minhaString  = "valor1000"; 
        }
 
    }
    return minhaString;
}

Isso evita “perder return” em meio a tantas condicoes, isto é, um único return deixa o codigo mais claro e fácil de debugar!

Ate mais!