c++不让main返回
c++ not let main return
我有以下代码:
int main()
{
Client *c = new Client();
ExitOnlyWhenClientException();
return 0;
}
所以我不希望main只在客户端抛出异常时返回。我知道我可以使用条件变量,它在客户端的析构函数中发出信号,并在主块中等待。
但是还有其他方法吗?
我找到了这个链接。你将如何实现一个基本的事件循环?
我在这里的问题和上面的链接有点不同,因为它应该知道客户端崩溃了。
编辑1
我说错了"崩溃",我的意思是"例外"。
让我们用另一种类类型替换Client
:
int main()
{
std::string *s = new std::string();
ExitOnlyWhenStringException();
return 0;
}
现在,如果您试图访问越界元素,std::string::at()
可能会引发异常。事实上,由于*s
是空的,所以任何索引都是越界的。但是,您没有调用s->at(8)
或任何其他方法。因此,唯一可能的例外是new
中的std::bad_alloc
。您不需要处理这个问题(任何合理的实现都将允许您动态地装箱至少一个对象)。
相关文章:
- 为什么要从main()返回NULL?
- 使用 Main() 返回值作为 python 脚本的参数
- 为什么 c++ 中的 main() 函数不采用除 int 和 void 之外的任何其他返回类型
- 我的运算符重载没有在我的 int main 中返回?
- 外部函数在 main() 上调用时返回分段错误 11.(C++)
- 动态数组传递给 main 中用随机值填充的函数,返回值3221226356
- 内存浪费?如果main()应该只返回0或1,那么为什么main是用int而不是短int甚至char声明的
- 无法从Linux,C ++执行"my_script" python脚本"main(filename)"功能;pModule = PyImport_Import(pName);返回空值
- 如何使类函数返回数组,然后将其调用并存储在 main 中
- 程序流并以安全而雄辩的方式正确返回Main()
- (C )当在同一类中调用时,污点指针返回正确的值,而从MAIN调用时为0
- 返回C 中的Main()
- 为什么当从递归函数返回字符串到C 中的Main时,我会得到分割错误
- 如何从子例程函数获取到 main 函数的返回值
- 即使将返回 0 作为 main 的第一行,程序也无法退出C++
- 在方法中更改类的私人价值不会将更改返回main()
- Bon appetit :从 int 返回类型函数在 main() 中打印字符串
- 为什么在C程序中从main()返回0
- 为什么代码不断跳转以返回main();
- c++ostringstream对象在返回main函数后导致未处理的异常