Erro de Logica usando try e catch

Pessoal,

Tô com a seguinte duvida, tenho um código já pronto e ele está atualmente assim:

[code]try{
função que pega o valor do regedit em 32-bits;

    Nesta linha teria o tratamento do valor recebido;
    Nesta linha teria o tratamento do valor recebido;
    Nesta linha teria o tratamento do valor recebido;
    Nesta linha teria o tratamento do valor recebido;
    Nesta linha teria o tratamento do valor recebido;
    Nesta linha teria o tratamento do valor recebido;
}

catch (Exception ex)
{
Mensagem de erro e aviso no sistema;
Mensagem de erro e aviso no sistema;
Mensagem de erro e aviso no sistema;
}
[/code]
Assim como está o exemplo minha função está funcionando perfeitamente, só que o problema ocorre que ela só busca em 32-bits.
E agora preciso usar ela para pegar em 64-bits. (estou usando windows)

sei que posso jogar a primeira tentativa de pegar o valor em um try e caso não ocorra vai gerar uma exeção, mas como aproveitar
o que já tenho " Nesta linha teria o tratamento do valor recebido;" e não repetir já que depois que peguei o valor
vai executar da mesma maneira, mesmo sendo 32 ou 64 -bits.

pensei em fazer assim, mas não está dando certo:

[code]try{
função que pega o valor do regedit em 32-bits;
}
catch(Exception ex)
{
try{
função que pega o valor do regedit em 64-bits;
}

Aqui que me perdo como fazer para fechar o catch abaixo e aproveitar as linhas abaixo??

     Nesta linha teria o tratamento do valor recebido;
    Nesta linha teria o tratamento do valor recebido;
    Nesta linha teria o tratamento do valor recebido;
    Nesta linha teria o tratamento do valor recebido;
    Nesta linha teria o tratamento do valor recebido;
    Nesta linha teria o tratamento do valor recebido;
}

catch (Exception ex)
{
Mensagem de erro e aviso no sistema;
Mensagem de erro e aviso no sistema;
Mensagem de erro e aviso no sistema;
}[/code]

Isto é uma péssima prática de programação, o try e catch é usado para tratar uma exceção( O que você nao está fazendo) e não para ser usado como um bloco lógico.

Existem milhares de formas de fazer isso, uma delas é usar um sentinela, quando a função 32 bits for executada ela informa, se não, executa a 64 bits, não há necessidade disso…

Tem que ser com try catch?
Já tentou fazer da forma abaixo?

Obs.: Não sei se isso que coloquei que é a sentinela .

1- criar uma variável para receber o retorno da função 32bit e outra para o retorno da função 64bit
2- verificar qual delas que recebeu um valor esperado e tratar esse retorno?

segue um pequeno código só para ajudar o que falei

public class NewClass {
    
    public static void main(String[] args){
        String contador32;
        String contador64;
        
        contador32 = chamadaFunçãoRegEdit32Bit();
        contador64 = chamadaFunçãoRegEdit64Bit();

        //aqui depois vc verifica se algo foi retornado para contador32 ou contador64 e trata isso
        
    }
    
}