我检查了 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/