Yes no If, não dá prosseguimento na rotina

Gente,é uma rotina simples mas que não consigo fazer funcionar.

  1. Tenho uma tabela de ‘tipos’.
  2. Tenho uma tela para alterar o tipo.
  3. Preciso confirmar (yes ou No) quando tento alterar para um tipo
    já existente na tabela.
  4. Se responder Yes, é para alterar mesmo já existindo (prosseguir a rotina)
  5. Se responder No, é para parar e voltar.
  6. Coloquei um IF (yes or no) dentro do IF do (rs.next).
  7. Quando respondo Yes, o programa para, e não faz a alteração.
  8. Tem alguma restrição quanto ao uso do if (yes or no) ?

Agradeço

--- minhas instruções -------------

private void alterar() {
String sql1 = "select * from tipo where tipo=?";

 try {   // essa chave do try, vai lá para o final.....
  
  pst = conexao.prepareStatement(sql1);
  pst.setString(1, (String) txtTipo.getText());
  rs=pst.executeQuery();

    if (rs.next()) {

 int confirma2=JOptionPane.showConfirmDialog(null,"ESSE TIPO JA EXISTE.
                      Prossegue mesmo assim?,"Atenção",JOptionPane.YES_NO_OPTION);

   if (confirma2==JOptionPane.NO_OPTION) 
           
      {JOptionPane.showMessageDialog(null, "Não prossegui"); }
  
    } // essa chave pertence ao if do next.....
              
        else {   
              
 String sql = "update tipo set codigo_tipo=?,tipo=?,descricao=?"
         + "where codigo_tipo=?"; 

etc
etc
etc

Para ter certeza, testa.

else{
   if(confirma2==JOptionPane.YES_OPTION){
       System.out.println("Apertou SIM");
   }else{
       System.out.println("Cancelou");
   }
}

E se der certo, sua rotina deve está com erro.
o catch retornou algo?

Colocando o else na frente, como vc sugeriu, vai funcionar. Nesse intervalo, fiz de outro jeito que deu certo tambem, sem usar o else:

String sql1 = "select * from tipo where tipo=?";
         try {   
            pst = conexao.prepareStatement(sql1);
             pst.setString(1, (String) txtTipo.getText());
            rs=pst.executeQuery();
          if (rs.next()) {

 int confirma2=JOptionPane.showConfirmDialog(null,"ESSE TIPO JA EXISTE. Altera mesmo assim ?","Atenção",JOptionPane.YES_NO_OPTION);
  if (confirma2==JOptionPane.NO_OPTION) 
     {  JOptionPane.showMessageDialog(null, "Cancelado"); 
                    txtCodigo.setText(null);
                    txtTipo.setText(null);
                    txtDesc.setText(null);
                   return;}

          } 
                          
 String sql = "update tipo set codigo_tipo=?,tipo=?,descricao=?"
         + "where codigo_tipo=?"; 

etc etc etc…

Agradeço sua informação, obrigado