c++ - 无法捕获 atan2 域错误

标签 c++ exception

我正在使用第三方库,例如。 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/

相关文章:

c++ - Variadic 用户定义的转换/构造函数

c++ - Qt 中的右键单击事件以打开上下文菜单

java - 使用 Zip4j : Probably not a zip file or a corrupted zip file 在 Android 中创建 zipFile 时出现异常

如果抛出异常,Java 继续执行循环

java - 当我创建一个新的异常时,我必须抛出它还是可以将它放在一个列表中?

c++ - C 项目 O 文件在 make 期间删除后仍在寻找 Cpp 文件

c++ - 在 Debug模式下调用函数时,GDB 崩溃

c++ - 如果其中一个函数有引用,如何定义两个具有相同名称和参数的函数?

ios - 当点击 NSSetUncaughtExceptionHandler 时,使用 CoreGraphics 在屏幕上绘制

c# - Winforms 毫不客气地以 "unhandled exception"退出