Erro de Logica usando try e catch



  • Pessoal,

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

    @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;
    }@

    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:

    @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;
    }@



  • lima_will,

    Não entendí bem o que você está tentando fazer.

    Ter try/catch aninhados fica um pouco confuso. Você poderia criar uma função para cada tratamento, e dentro das funções um try/catch.

    Você disse que está tentando ler valor do regedit (registro do WIndows).
    Se sua aplicação é 32bits, precisa ler o registro de 64bits?

    Pergunto isso, porque o Windows, em algumas situações faz o "merge" entre o registro de 32bits no de 64bits.

    Por exemplo, numa máquina 64bits, se você executar:

    @c:\windows\system32\regedit.exe@

    Você vai ler o REGISTRY de 64bits

    Se executar:

    @c:\windows\SysWOW64\regedit.exe@

    Você vai ler o REGISTRY de 32bits


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.