wenmo8 发布的文章

简介

STATUS_FLOAT_MULTIPLE_TRAPS---浮点数多重陷阱异常。值为0xC00002B5。定义如下

//
// MessageId: STATUS_FLOAT_MULTIPLE_TRAPS
//
// MessageText:
//
// {EXCEPTION}
// Multiple floating point traps.
//
#define STATUS_FLOAT_MULTIPLE_TRAPS      ((NTSTATUS)0xC00002B5L)    // winnt

说明

当进行浮点数运算时,且设置了浮点异常模式,当遇到比如除0.0操作时,抛此异常。

异常结构说明

ExceptionAddress: 00f515dc
   ExceptionCode: c00002b5
  ExceptionFlags: 00000000
NumberParameters: 2
   Parameter[0]: 00000000
   Parameter[1]: 0000e144---浮点 MXCSR寄存器的值,包含设置的浮点异常掩码、当前异常状态值、清零模式和四舍五入模式等

 

简介

STATUS_FLOAT_MULTIPLE_FAULTS---多浮点错误。值为0xC00002B4。定义如下

//
// MessageId: STATUS_FLOAT_MULTIPLE_FAULTS
//
// MessageText:
//
// {EXCEPTION}
// Multiple floating point faults.
//
#define STATUS_FLOAT_MULTIPLE_FAULTS     ((NTSTATUS)0xC00002B4L)    // winnt

说明

当进行浮点数运算时,且设置了浮点异常模式,当遇到溢出时,抛此异常。

异常结构说明

ExceptionAddress: 0091146f (ConsoleApplication2!_Pow_int<double>+0x0000005f)
   ExceptionCode: c00002b4
  ExceptionFlags: 00000000
NumberParameters: 2
   Parameter[0]: 00000000
   Parameter[1]: 00001ba8----浮点 MXCSR寄存器的值,包含设置的浮点异常掩码、当前异常状态值、清零模式和四舍五入模式等

 

简介

STATUS_FLOAT_INVALID_OPERATION---浮点数无效操作。值为0xC0000090。其定义如下

//
// MessageId: STATUS_FLOAT_INVALID_OPERATION
//
// MessageText:
//
// {EXCEPTION}
// Floating-point invalid operation.
//
#define STATUS_FLOAT_INVALID_OPERATION   ((NTSTATUS)0xC0000090L)    // winnt

说明

当我们进行浮点数运算时,且设置了浮点异常模式,遇到违反运算规则时比如对负数开平方Sqrtf(-1.0f)抛出此异常。

异常结构说明

ExceptionAddress: 75f8a6e2 (KERNELBASE!RaiseException+0x00000062)
   ExceptionCode: c0000090
  ExceptionFlags: 00000000
NumberParameters: 1
   Parameter[0]: 00affc40----_FPIEEE_RECORD结构地址

 

简介

STATUS_FLOAT_DIVIDE_BY_ZERO---浮点数除零异常。值为0xC000008E。其定义如下

//
// MessageId: STATUS_FLOAT_DIVIDE_BY_ZERO
//
// MessageText:
//
// {EXCEPTION}
// Floating-point division by zero.
//
#define STATUS_FLOAT_DIVIDE_BY_ZERO      ((NTSTATUS)0xC000008EL)    // winnt

说明

当进行浮点数除法运算且除数为0.0时抛出此异常

异常结构

ExceptionAddress: 01004271 (ConsoleApplication2!wmain+0x00000091)
   ExceptionCode: c000008e
  ExceptionFlags: 00000000
NumberParameters: 1
   Parameter[0]: 00000000

简介

STATUS_FLOAT_OVERFLOW---浮点运算溢出异常。值为0xC0000091。其定义如下

//
// MessageId: STATUS_FLOAT_OVERFLOW
//
// MessageText:
//
// {EXCEPTION}
// Floating-point overflow.
//
#define STATUS_FLOAT_OVERFLOW            ((NTSTATUS)0xC0000091L)    // winnt

说明

如果结果不能以目标的精度格式表示为有限值或当四舍五入结果不合适(浮点数的指数超过所能表示的最大值)时抛出此异常。

异常结构

ExceptionAddress: 0052197d (ConsoleApplication2!_Pow_int<double>+0x0000008d)
   ExceptionCode: c0000091
  ExceptionFlags: 00000000
NumberParameters: 1
   Parameter[0]: 00000000