c_cpp 捕获浮点异常

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 捕获浮点异常相关的知识,希望对你有一定的参考价值。

// For Linux machines
#include <fenv.h> // or <cfenv> but only for C++11
// Enable all exceptions except for INEXACT 
feenableexcept(FE_ALL_EXCEPT & ~FE_INEXACT);
// More info at https://linux.die.net/man/3/feenableexcept


// For machines using SSE (Apple, etc.)
#include <xmmintrin.h>
// Disable only INVALID exception
_MM_SET_EXCEPTION_MASK(_MM_GET_EXCEPTION_MASK() & ~_MM_MASK_INVALID);
// Enable the overflow and underflow exceptions and disable all others
_MM_SET_EXCEPTION_MASK(MM_MASK_OVERFLOW | _MM_MASK_UNDERFLOW)
// More info at http://technion.ac.il/doc/intel/compiler_c/main_cls/intref_cls/common/intref_sse_macro_readwrite_reg.htm

以上是关于c_cpp 捕获浮点异常的主要内容,如果未能解决你的问题,请参考以下文章

为啥启用浮点异常后出现多个陷阱错误

异常处理动手动脑

c_cpp 如何在Swift中正确捕获NSExceptions?

c_cpp 创建一个段错误并使用strace捕获它

c_cpp v4l2网络摄像头捕获

如何使用 try-catch 捕获浮点错误?