【发布时间】:2017-10-08 17:11:52
【问题描述】:
在标准 C++ 中,main 函数可以有异常规范吗?
例如,以下是否合法?
int main() noexcept {}
【问题讨论】:
-
这很愚蠢。如果从 main 中抛出异常,程序会以异常回溯退出。如果一个函数抛出了一些不在其异常规范中的东西,它也会做同样的事情。
-
@ZanLynx 实际上你的第一个案例调用
std::terminate,你的第二个案例调用std::unexpected。默认情况下,后者调用前者,但可以更改。任何“异常回溯”都是特定于实现的扩展。
标签: c++ c++11 main exception-specification