Программа прерывания отлова внутри определенного класса исключения - PullRequest
0 голосов
/ 18 декабря 2018

Я запускаю двоичный файл изнутри моей программы на С ++.Я пытаюсь создать некоторую логику повторных попыток на случай, если произойдет сбой до того, как произойдет сбой программы и произойдет возврат основного.Я ловлю класс исключения, который я определил, и на его основе я выполняю логику повторных попыток, иначе я выкидываю в main, чтобы завершить программу.

Код работает нормально, но у меня возникают проблемы при нажатии (Ctrl+ C) пока работает другой двоичный файл (когда я прекращаю работу программы).Он обрабатывает исключение как мое определенное исключение и выполняет логику попытки, которая является неправильной, поскольку мы хотим прервать программу, а не повторять попытку.

Как я могу обработать случай прерывания в этой ситуации?

void run(){
    try{
       if(!runOtherBinary())
           throw binaryexception(message);
    }catch(binaryexception& e){
           someretrylogic();
    }catch(...){
           throw;
    }
}

int main(){
    try{
        run();
    }
    catch(binaryexception& e){

    }catch(...){

    } 
}
...