我正在使用第三方库,例如。 Lib::ValueType value
.然后我调用一个成员函数,value.theta()
它执行一些数学运算,包括调用 atan2
来自 <cmath>
.有时 theta
组件为空并抛出“atan2:域错误”。但是,即使包装 try{}catch(...)
也无法捕获异常围绕可疑代码。
我正在使用 C++ Builder 2009,关于异常是如何被抛出而不被 IDE 或我的代码捕获的任何想法。错误以对话框的形式直接弹出到屏幕上。我已经选择了 IDE 中的所有选项来处理每种类型的异常。
最佳答案
C 标准库不知道 C++ 异常处理,因此 try-catch
将不起作用。你可能想看看 matherr函数 - 根据文档,您可以在程序中重新定义此函数,以便自己处理数学异常。
关于c++ - 无法捕获 atan2 域错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3162876/