为什么SEM_NOGPFAULTERRORBOX也会抑制除零?

时间:2013-07-25 08:30:02

标签: c++ winapi exception-handling divide-by-zero

似乎SetErrorMode(SEM_NOGPFAULTERRORBOX)禁止除以零。

重现的代码:

SetErrorMode(SetErrorMode(0) | SEM_NOGPFAULTERRORBOX); // Comment out this line and an error dialog will appear.
int a = 5;
printf("%d", 1/(a-5));

为什么?从名称我假设它应该只抑制一般保护错误,这与除零无关。

1 个答案:

答案 0 :(得分:3)

来自MSDN reference page

  

系统不显示Windows错误报告对话框。

这意味着当您设置标志时,它会禁止所有错误对话框。