c++ - 如何处理 "Error in function boost::math::cyl_bessel_k<d>(d,d): numeric overflow"

标签 c++ math boost error-handling bessel-functions

我检查了 boost docs ,而且我知道这个错误是将 0 作为第二个参数传递给 boost::math::cyl_bessel_k 的结果,它的确如此

  return (v == 0) ? policies::raise_overflow_error<T>(function, 0, pol)
     : policies::raise_domain_error<T>(
     function,
     "Got x = %1%, but we need x > 0", x, pol);

如果它收到了。

我是 98% 的 C++ 菜鸟。如何处理此错误以防止我的程序崩溃?

最佳答案

嗯,显而易见的答案似乎是不传递 0,但如果那不可行,并且您可以接受函数失败,您可以捕获异常并以如下方式处理它似乎是对的。这样程序就不会崩溃了。

tutorial可能有助于更深入地解释您应该做什么。

关于c++ - 如何处理 "Error in function boost::math::cyl_bessel_k<d>(d,d): numeric overflow",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18305191/

相关文章:

c++ - Boost.Format 的编译时检查

c++ - 如何将 streambuf 复制到 unsigned char 数组?

c++ - 在 ref/cref 范围内同时迭代

c++ - MSVC 2015/Wall 有很多无用的消息

c++ - 使用许多外部类型声明时如何加快编译时间

c# - 汇总单个变量的各种数值效应的结果

c++ - C++中的曲线平滑

c++ - 为什么赋值运算符 = 返回的不是指针的值而是解引用值?

c++ - Boost Spirit X3 在将字符串填充到 vector 时没有匹配的调用引用

mysql - 计算 3d 对象的最大边 - MySQL 函数选择第二大值