Problemas na consulta

boa noite!

estou com um problema nesse codigo e não sei onde pode ser.
faço uma consulta no banco sql server se eu digita o codigo certo ele passa,
mas se eu digita o codigo errado ele não vai para a mensagem de erro e trava a aplicação!
olha o codigo ai:

[code]
try{

        String cod = null;
        rs = c.stm.executeQuery("Select * from cliente where cli_cod_cartao = "+ tx_cod_cartao.getText());
           rs.next();
            cod = tx_cod_cartao.getText();
              if (rs.getString("cli_cod_cartao").equals(cod)){
                 
                this.dispose();
                tela_opcoes tp = new tela_opcoes();
                tp.setVisible(true);

            }else{
               JOptionPane.showMessageDialog(null,"Problemas na identificação do Código");
              } }

        catch(Exception e){
        
            
        }[/code]

quem souber onde esta o erro mostra ai pra mim por favor!

você tem uma mensagem no else, mas se der uma exceção nada mais vai roda, então você deve por uma mensagem no bloco catch

try{  
  
            String cod = null;  
            rs = c.stm.executeQuery("Select * from cliente where cli_cod_cartao = "+ tx_cod_cartao.getText());  
               rs.next();  
                cod = tx_cod_cartao.getText();  
                  if (rs.getString("cli_cod_cartao").equals(cod)){  
                       
                    this.dispose();  
                    tela_opcoes tp = new tela_opcoes();  
                    tp.setVisible(true);  
  
                }else{  
                   JOptionPane.showMessageDialog(null,"Problemas na identificação do Código");  
                  } }  
  
            catch(Exception e){  
              
                   JOptionPane.showMessageDialog(null,"Erro na consulta");  
            }  

Tais fazendo coisas redundantes e sem necessidade nesse codigo, primeiro pede ao banco pra retornar os registros em que o cli_cod_cartao seja igual ao tx_cod_cartao.getText(), depois faz um if pra fazer a mesma verificação, o correto seria algo do tipo

[code]try{
PreparedStatement statement = connection.prepareStatement("select cli_cod_cartao from cliente where cli_cod_cartao = ?);

// Sua variavel não é uma constante por isso não deve
// ser separada por underscore e sim usar o padrao
// camelcase
statement.setString(1, txCodCartao.getText());

ResultSet rs = statement.executeQuery();

// Verifica se foi retornado algo do banco de dados, indicando que
// existe um registro em que o cli_cod_cartao é igual ao codigo informado
if(rs.first()){

	// Mais uma vez camelcase
	TelaOpcoes tp = new telaOpcoes();
	tp.setVisivle(true);
	this.dispose();

} else {
	JOptionPane.showMessageDialog(null,"Problemas na identificação do Código");
}

} catch (Exception e){
JOptionPane.showMessageDialog(null,“Erro na consulta”);
}[/code]

valeu galera por responder a minha duvida e me ajudou muito!!! obrigado.