Erro missing return statement

5 respostas
R
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;
        }
   }
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

5 Respostas

celso.martins

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

R

Obrigado!!!
Resolvido havia um } no lugar errado

davidtiagoconceicao

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.

davidtiagoconceicao

Ok, não atualizei aqui…

Vini_Fernandes

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!

Criado 18 de maio de 2009
Ultima resposta 18 de mai. de 2009
Respostas 5
Participantes 4