在我的每个主要函数中,我想捕获某些类的异常并将它们转换为退出代码。一个隐含的try {}抓住主
有没有比这个更优雅的解决方案比起始和结束每个主要功能的宏都会粘贴隐含的try {} catch
我想要的?
我可以通过std::set_terminate
功能以某种方式实现此功能吗?
实施例:
int main(){
try { //<- insert this
/*
the business logic goes here
*/
//-> and insert this
}
catch(const Someclass1& e){ return 2; }
catch(const Someclass2& e){ return 3; }
//...
catch(...){ return 1; }
}
是否所有你的例外与继承有关(或者他们可以?) – quamrana
@quamrana是的。它实际上可能只是关于一个虚拟基类。 – PSkocik
然后,您可以让每个异常类嵌入返回码,并且'main()'中的一个try/catch可以提取并返回它。 – quamrana