noexcept修饰的函数无法被catch到(只会崩溃)
- 由于createTest函数是被noexcept修饰的,但是createTest又抛出了异常,这是catch不到的
class Test {
vector<int> vec;
public :
Test(int siz) : vec(siz) {
printf("siz: %d\n", siz); fflush(stdout);
}
};
void createTest() noexcept { // 重点1: 注意noexcept
Test t(-1);
}
int main()
{
try {
createTest(); // 重点2: 这里直接会调用std::abort()结束程序
} catch(...) {
printf("catch createTest()\n"); fflush(stdout); // 重点3: 这里不会执行到
}
return 0;
}

浙公网安备 33010602011771号