硬件异常

操作系统识别的大多数标准异常是硬件定义的异常。 窗口识别某些低级别软件异常,但是,操作系统通常是最佳处理的这些。

windows 映射不同的处理器硬件错误。本节中的异常代码。 有时,处理器可以生成这些异常的一个子集。 窗口预处理有关异常的信息并发出相应的异常代码。

窗口识别的硬件异常下表中总结:

异常代码

异常的原因

STATUS_ACCESS_VIOLATION

读取或写入不可访问的内存位置。

STATUS_BREAKPOINT

遇到硬件上定义的断点;仅使用由调试器。

STATUS_DATATYPE_MISALIGNMENT

读取或写入数据在没有正确对齐的地址;例如,在 2 字节边界对齐方式必须 16 位实体。 (不适用于 80x86 Intel 处理器。)

STATUS_FLOAT_DIVIDE_BY_ZERO

除以 0.0 的浮点类型。

STATUS_FLOAT_OVERFLOW

溢出浮点类型最大正值指数。

STATUS_FLOAT_UNDERFLOW

超过大小浮点类型最小置于负指数。

STATUS_FLOATING_RESEVERED_OPERAND

使用一个保留的浮点格式 (要设置格式的无效用法。)

STATUS_ILLEGAL_INSTRUCTION

尝试执行处理器未定义的指令代码。

STATUS_PRIVILEGED_INSTRUCTION

对当前设备模式下不允许的命令。

STATUS_INTEGER_DIVIDE_BY_ZERO

除以 0 的整数类型。

STATUS_INTEGER_OVERFLOW

尝试超出该整数范围的操作。

STATUS_SINGLE_STEP

在单步模式下执行命令;仅使用由调试器。

上表中列出的大多数异常主要由调试器、操作系统,或其他低级别的代码。 除了整数和浮点错误外,代码不应处理这些错误。 因此,您通常应使用异常处理的筛选器忽略异常 (将计算结果为 0)。 否则,可以防止底部结构适当响应。 可以,但是,通过 编写终止处理程序采用这些低级别错误的潜在影响的相应措施。

请参见

参考

编写异常处理程序

结构化异常处理(C++)