可能重复:
如何防止 C++ 中的崩溃
typedef struct {
int val;
} valStruct;
main()
{
try {
valStruct *s = NULL;
int v = s->val; // bad
}
catch (...) {}
}
对 MacOS 来说相当新。在调试器下运行我得到一个 EXC_BAD_ACCESS 中断。不难猜测这意味着发生了错误的内存访问,但我没有得到 C++ 异常,并且在上面的代码中我的 catch 不会被调用。
这似乎是一件坏事,几乎使 C++ 异常处理变得无用。除非这只是一个调试的事情。如果我在发布模式下运行,或更改设置,这是否会作为例外处理?