C++ 超出范围异常不触发

C++ out of range exception not firing

自从我使用 C++ 工作以来已经有一段时间了,我在理解为什么不触发超出范围的异常方面遇到了一些问题。

请参阅下面的 try。我故意触发它,但在调试模式下,它在那条线上中断,而不是像我预期的那样落入 catch

过去一个小时里我读到的所有内容都没有让我对这个问题更加明智。

根据设计,调试器会先于可执行代码看到所有异常。这允许您在继续之前分析并可能修复与异常相关的任何问题,或者只是结束执行等。

要让catch在调试器中工作,只需告诉调试器在异常中断时继续执行,然后异常将传递给可执行代码以进行正常处理。

当代码 运行 在调试器之外时,异常将按预期直接进入最近的匹配 catch