Note The Microsoft C/C++ Optimizing Compiler interprets this function as a keyword, and its use outside the appropriate exception-handling SYNTAX generates a compiler error.函式原型
DWORD GetExceptionCode(void);
參數該宏沒有參數
返回值返回值標識著異常的類型。程式運行中可能拋出的異常類型在下面的表格中描述。這些值定義在
Winbase.h 和 Winnt.h中.
硬體異常即由CPU引發的異常,Windows定義了以下的硬體異常代碼:
異常 | 值 | 描述 |
EXCEPTION_ACCESS_VIOLATION | 0xC0000005 | 程式企圖讀寫一個不可訪問的地址時引發的異常。例如企圖讀取0地址處的記憶體。 |
EXCEPTION_ARRAY_BOUNDS_EXCEEDED | 0xC000008C | 數組訪問越界時引發的異常。 |
EXCEPTION_BREAKPOINT | 0x80000003 | 觸發斷點時引發的異常。 |
EXCEPTION_DATATYPE_MISALIGNMENT | 0x80000002 | 程式讀取一個未經對齊的數據時引發的異常。 |
EXCEPTION_FLT_DENORMAL_OPERAND | 0xC000008D | 如果浮點數操作的運算元是非正常的,則引發該異常。所謂非正常,即它的值太小以至於不能用標準格式表示出來。 |
EXCEPTION_FLT_DIVIDE_BY_ZERO | 0xC000008E | 浮點數除法的除數是0時引發該異常。 |
EXCEPTION_FLT_INEXACT_RESULT | 0xC000008F | 浮點數操作的結果不能精確表示成小數時引發該異常。 |
EXCEPTION_FLT_INVALID_OPERATION | 0xC0000090 | 該異常表示不包括在這個表內的其它浮點數異常。 |
EXCEPTION_FLT_OVERFLOW | 0xC0000091 | 浮點數的指數超過所能表示的最大值時引發該異常。 |
EXCEPTION_FLT_STACK_CHECK | 0xC0000092 | 進行浮點數運算時棧發生溢出或下溢時引發該異常。 |
EXCEPTION_FLT_UNDERFLOW | 0xC0000093 | 浮點數的指數小於所能表示的最小值時引發該異常。 |
EXCEPTION_ILLEGAL_INSTRUCTION | 0xC000001D | 程式企圖執行一個無效的指令時引發該異常。 |
EXCEPTION_IN_PAGE_ERROR | 0xC0000006 | 程式要訪問的記憶體頁不在物理記憶體中時引發的異常。 |
EXCEPTION_INT_DIVIDE_BY_ZERO | 0xC0000094 | 整數除法的除數是0時引發該異常。 |
EXCEPTION_INT_OVERFLOW | 0xC0000095 | 整數操作的結果溢出時引發該異常。 |
EXCEPTION_INVALID_DISPOSITION | 0xC0000026 | 異常處理器返回一個無效的處理的時引發該異常。 |
EXCEPTION_NONCONTINUABLE_EXCEPTION | 0xC0000025 | 發生一個不可繼續執行的異常時,如果程式繼續執行,則會引發該異常。 |
EXCEPTION_PRIV_INSTRUCTION | 0xC0000096 | 程式企圖執行一條當前CPU模式不允許的指令時引發該異常。 |
EXCEPTION_SINGLE_STEP | 0x80000004 | 標誌暫存器的TF位為1時,每執行一條指令就會引發該異常。主要用於單步調試。 |
EXCEPTION_STACK_OVERFLOW | 0xC00000FD | 棧溢出時引發該異常。 |