我做了这个测试来看看发生了什么:
try { int *x = 0; *x = 1234; } catch(...) { cout << "OK"; }
但它抛出了段错误,为什么它没有捕获段错误?
不,你不能。
A SEGFAULT不是一个常规的例外。
SEGFAULT
您显示的代码只是未定义的行为,任何事情都可能发生。不能保证它最终会抛出异常。