硬體例外狀況
標準的例外狀況的作業系統辨識大多屬於硬體定義的例外狀況。 表示 Windows 已將少數的低層級的軟體例外,但是這些通常建議您連絡的作業系統。
Windows 會對應至例外狀況代碼,本章節中的不同處理器的硬體錯誤。 在某些情況下,處理器可能會產生這些例外狀況的子集。 Windows 會前置處理的例外狀況的相關資訊,並發出適當的例外狀況的程式碼。
由 Windows 所識別的硬體例外,摘要於下表:
例外狀況的程式碼 |
造成例外狀況 |
---|---|
STATUS_ACCESS_VIOLATION |
讀取或寫入至無法存取的記憶體位置。 |
STATUS_BREAKPOINT |
遇到硬體所定義的中斷點。 只有使用偵錯工具。 |
STATUS_DATATYPE_MISALIGNMENT |
讀取或寫入資料的位址,不能正確對齊。 比方說,16 位元實體必須在 2 個位元組的界限對齊。 (不適用於 Intel 80xx86 處理器。) |
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)。 否則,您可能會導致較低層級機制無法適當地回應。 您可以,不過,採取適當的預防措施,防止潛在的效果,藉由這些低階錯誤撰寫終止處理常式。