我无法找到一个完全是我的问题的帖子,所以如果有人知道它是否已经解决了,请转发给我:)
我正在开发Visual C ++ 2008,版本9.0.21022.8 RTM。我正在创建一些测试但是visualStudio总是打破这个异常
bool exceptionCaught = false;
try
{
char* buff = NULL;
buff[0] = 10;
}
catch (...)
{
exceptionCaught = true;
}
我取消选中Debugging中的所有框 - > Exceptions,我在Debugging部分的Tools-> Options对话框中尝试了所有选项。 我正在使用异常处理/ HEa(但无论如何,/ EHsc不会改变任何东西)
这段代码完全适用于另一台计算机,但即使使用其配置,我的行为也不会改变,它会一直打破......
我有什么遗失的吗?另一个选项/菜单?
答案 0 :(得分:2)
通过空指针写入是C ++中未定义的行为。它没有理由产生C ++异常。您不能使用C ++异常模型来处理对无效地址的直接写入。
它可能会产生某种形式的操作系统错误;这也可以称为“异常”,但它与C ++异常无关。