複製鏈接
請複製以下鏈接發送給好友

RaiseException

鎖定
RaiseException是編程中一個函數,該函數是用來拋出一個調用線程時發生的異常。
外文名
RaiseException
性    質
計算機科學領域術語
類    別
編程

目錄

RaiseException語法

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。
這些參數可以包含任何應用程序所定義的數據,而這些數據需要傳遞給異常處理程序的篩選表達式

RaiseException返回值

這個函數沒有返回值。
處理步驟
該函數啓用一個進程並使用結構化異常處理來處理私有的,軟件生成的和應用程序定義的異常。
一個異常處理程序在引發異常並導致異常調度的時候需要經過以下步驟的處理:
1.如果有調試器,系統首先嚐試通知進程的調試器。
2.如果這一進程不被調試,或者相關的調試器不處理異常,系統將嘗試通過搜索發生異常的線程的堆棧來定位一個基於幀的異常處理程序。 系統首先會搜索當前棧幀,然後繼續向後搜索棧幀。
3.如果沒有找到基於幀的異常處理程序,或沒有基於幀的異常處理程序處理該異常,系統將會第二次嘗試通知進程的調試器。
4.如果該進程仍未被調試,或者相關的調試器不處理異常,系統以異常類型為基礎提供默認的處理程序。 對於大多數異常,默認動作是調用ExitProcess函數。

RaiseException要求

最低支持的客户端
Windows 2000專業版
最低支持的服務器
Windows 2000服務器
頭文件
WINBASE.H中(包括Windows.h中)
庫文件
Kernel32.lib
DLL
Kernel32.dll
[1] 
參考資料