void WINAPI RaiseException(
__in DWORD dwExceptionCode,
__in DWORD dwExceptionFlags,
__in DWORD nNumberOfArguments,
__in const ULONG_PTR *lpArguments );
dwExceptionCode
一個在拋出異常時應用程式定義的異常代碼。 該篩選表達式和異常處理程式的異常處理程式塊可以使用GetExceptionCode函式獲得它的值。
請注意,系統會在顯示信息之前清除dwExceptionCode參數的第28位,該位是一個系統保留的異常位,僅供系統自身使用。
dwExceptionFlags
異常標誌。
這可以賦值為零,表示一個可持續異常,或者使用EXCEPTION_NONCONTINUABLE標誌來表示一個不可持續的異常。
發生不可持續的異常後,任何企圖繼續執行的行為將導致觸EXCEPTION_NONCONTINUABLE_EXCEPTION異常。
nNumberOfArguments
表示lpArguments參數數組中的參數個數。 這個值不能超過EXCEPTION_MAXIMUM_PARAMETERS。
如果lpArguments為NULL ,則忽略此參數。
lpArguments
一個參數數組。 這個參數可以是NULL。
這些參數可以包含任何應用程式所定義的數據,而這些數據需要傳遞給異常處理程式的篩選表達式。
這個函式沒有返回值。
備註該函式啟用一個進程並使用結構化異常處理來處理私有的,軟體生成的和應用程式定義的異常。
一個異常處理程式在引發異常並導致異常調度的時候需要經過以下步驟的處理:
1.如果有調試器,系統首先嘗試通知進程的調試器。
2.如果這一進程不被調試,或者相關的調試器不處理異常,系統將嘗試通過搜尋發生異常的執行緒的堆疊來定位一個基於幀的異常處理程式。 系統首先會搜尋當前棧幀,然後繼續向後搜尋棧幀。
3.如果沒有找到基於幀的異常處理程式,或沒有基於幀的異常處理程式處理該異常,系統將會第二次嘗試通知進程的調試器。
4.如果該進程仍未被調試,或者相關的調試器不處理異常,系統以異常類型為基礎提供默認的處理程式。 對於大多數異常,默認動作是調用ExitProcess函式。
最低支持的客戶端 | Windows 2000專業版 |
最低支持的伺服器 | Windows 2000伺服器 |
頭檔案 | WINBASE.H中(包括Windows.h中) |
庫檔案 | Kernel32.lib |
DLL | Kernel32.dll |