在定义的异常类中捕获程序中止

时间:2018-12-18 09:49:02

标签: c++ linux exception exception-handling sigabrt

我正在从c ++程序内部运行二进制文件。 我试图提出一些重试逻辑,以防程序失败并返回主函数之前失败。 我正在捕获我定义的异常类,并基于该异常类执行重试逻辑,否则我将抛出该异常类以终止程序。

代码运行正常,但是当另一个二进制文件正在运行时(当我中止程序时)按(ctrl + C)时出现问题。 它将异常视为我定义的异常,并执行try逻辑,这是错误的,因为我们要中止程序而不是重试。

在这种情况下如何处理中止案件?

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

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

    }catch(...){

    } 
}

0 个答案:

没有答案