winnt.h (EXCEPTION_RECORD 結構)
描述例外狀況。
語法
typedef struct _EXCEPTION_RECORD {
DWORD ExceptionCode;
DWORD ExceptionFlags;
struct _EXCEPTION_RECORD *ExceptionRecord;
PVOID ExceptionAddress;
DWORD NumberParameters;
ULONG_PTR ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
} EXCEPTION_RECORD;
成員
ExceptionCode
發生例外狀況的原因。 這是硬體例外狀況所產生的程式碼,或軟體產生例外狀況 之 RaiseException 函式中指定的程式碼。 下表描述可能因為常見的程式設計錯誤而發生的例外狀況代碼。
偵錯主控台進程時,可能會發生另一個例外狀況程式碼。 它不會因為程式設計錯誤而發生。 當 CTRL+C 輸入處理 CTRL+C 訊號且正在偵錯的主控台進程時,就會發生 DBG_CONTROL_C 例外狀況程式碼。 此例外狀況程式碼並非由應用程式處理。 它只會針對偵錯工具的優點而引發,而且只有在偵錯工具附加至主控台進程時才會引發。
ExceptionFlags
這個成員包含零個或多個例外狀況旗標。 下表描述一些常見的例外狀況旗標。 下表中沒有例外狀況旗標應該視為保留供系統使用。
例外狀況旗標 | 意義 |
---|---|
|
此旗標的存在表示例外狀況是不可連續的例外狀況,而缺少此旗標則表示例外狀況是可持續性的例外狀況。 在不可繼續的例外狀況之後,任何嘗試繼續執行都會造成 EXCEPTION_NONCONTINUABLE_EXCEPTION例外狀況 。 |
|
此旗標保留供系統使用。 |
ExceptionRecord
相關聯 EXCEPTION_RECORD 結構的指標。 例外狀況記錄可以鏈結在一起,以在發生巢狀例外狀況時提供其他資訊。
ExceptionAddress
發生例外狀況的位址。
NumberParameters
與例外狀況相關聯的參數數目。 這是 ExceptionInformation 陣列中定義的元素數目。
ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]
描述例外狀況的其他引數陣列。 RaiseException 函式可以指定這個引數陣列。 對於大部分的例外狀況代碼,陣列元素是未定義的。 下表描述定義陣列元素的例外狀況代碼。
備註
若要讓偵錯工具偵錯在不同架構上執行的目標, (32 位與 64 位) ,請使用這個結構的其中一種明確形式。
typedef struct _EXCEPTION_RECORD32 {
DWORD ExceptionCode;
DWORD ExceptionFlags;
DWORD ExceptionRecord;
DWORD ExceptionAddress;
DWORD NumberParameters;
DWORD ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
} EXCEPTION_RECORD32, *PEXCEPTION_RECORD32;
typedef struct _EXCEPTION_RECORD64 {
DWORD ExceptionCode;
DWORD ExceptionFlags;
DWORD64 ExceptionRecord;
DWORD64 ExceptionAddress;
DWORD NumberParameters;
DWORD __unusedAlignment;
DWORD64 ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
} EXCEPTION_RECORD64, *PEXCEPTION_RECORD64;
規格需求
最低支援的用戶端 | Windows XP [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2003 [傳統型應用程式 |UWP 應用程式] |
標頭 | winnt.h (包括 Windows.h) |