在以下 C++ 代码中,整数除以零应该是不可能发生的:
// gradedUnits and totalGrades are both of type int
if (gradedUnits == 0) {
return 0;
} else {
return totalGrades/gradedUnits; //call stack points to this line
}
但是 Visual Studio 弹出此错误:
DSA_asgn1.exe 中 0x001712c0 处的未处理异常:0xC0000094:整数除以零。
堆栈跟踪指向代码中指示的行。
更新:我可能只是在这里做了一些愚蠢的事情。在试图让 VS 关注我的调试断点时,我重新构建了解决方案,异常不再发生。在我看来,当我认为我正在开始新的会话时,我可能会在调试会话的中间停止并恢复它。
感谢您的回复。在这里删除我的问题是否合适,因为它已经解决并且不是我认为的那样?
似乎 VS 可能只对任何整数除法执行此操作,而不检查是否可以除以零。即使代码永远不能抛出它,我是否需要捕获这个异常?如果是这样,最好的方法是什么?
这是针对使用 C++ 指定 VS 2005/2008 的分配。我不想让事情变得比我需要的更复杂,但同时我喜欢尽可能地把事情做好。