Verificar CPF já existente. JAVA+MySQL

Olá, galera!

Estou com esse método para cadastro de clientes, mas estou com dificuldade na validação do cpf. Como criei o campo cpf no BD como UNIQUE, quando o usuário tenta inserir um cpf já cadastrado, o sistema retorna uma exceção, mas eu quero que exiba a mensagem “CPF já cadastrado!”. Alguém pode me dar alguma dica de como fazer?

` private void Adicionar() {

    String sql = "insert into clientes (nome, endereco, telefone, email, cpf) values (?, ?, ?, ?, ?)";
    try {
        pst = conexao.prepareStatement(sql);
        pst.setString(1, Nome.getText());
        pst.setString(2, Endereco.getText());
        pst.setString(3, Fone.getText());
        pst.setString(4, Email.getText());
        pst.setString(5, Cpf.getText());             
        //validação dos campos obrigatórios
        if ((Nome.getText().isEmpty()) || (Fone.getText().isEmpty()) || (Cpf.getText().isEmpty())) {
            JOptionPane.showMessageDialog(null, "Preencha todos os campos obrigatórios"); //validação de cpf
        /* }else if (Cpf.getText().)
                {
            JOptionPane.showMessageDialog(null, "CPF já cadastrado!");*/ 
        } else {
            int adicionado = pst.executeUpdate();
            System.out.println(adicionado);
            if (adicionado > 0) { 
                JOptionPane.showMessageDialog(null, "Cliente  cadastrado com sucesso");                  
            }
        }
    } catch (Exception e) {
        JOptionPane.showMessageDialog(null, e);
    }
}

Uma dica é não fazer validações nas consultas.

Pra verificiar se um CPF já está cadastrado você tem que fazer uma consulta e depois comparar com o que tá tentando inserir.

Por exemplo:

private int verificarCPFCadastrado(String cpf, Connection conexao){
    String query = "SELECT id FROM clientes WHERE cpf = ?";
    try(PreparedStatement ps = conexao.prepareStatement(query)){
        ps.setString(1, cpf.getText());
        try(ResultSet rs = ps.executeQuery()){
            if(rs.next()){
                return rs.getInt("id");
            }
        }
    }
    return null;
}

A comparação pode ser feita da seguinte forma:

int aux = model.verificarCPFCadastrado(cliente.getCpfCnpj(), conn);
if(aux != null && cliente.getId() == null
    || (cliente.getId() != null && aux != null && !aux.equals(cliente.getId()))) {
         
// Joga a mensagem dizendo que o CPF ou CNPJ já está cadastrado.
}