SetThreadErrorMode 函式 (errhandlingapi.h)

控制系統是否會處理指定的嚴重錯誤類型,或呼叫執行緒是否會處理它們。

語法

BOOL SetThreadErrorMode(
  [in]  DWORD   dwNewMode,
  [out] LPDWORD lpOldMode
);

參數

[in] dwNewMode

執行緒錯誤模式。 此參數可以是下列一或多個值。

意義
0
使用系統預設值,也就是顯示所有錯誤對話方塊。
SEM_FAILCRITICALERRORS
0x0001
系統不會顯示 critical-error-handler 訊息方塊。 相反地,系統會將錯誤傳送至呼叫執行緒。

最佳做法是所有應用程式都會在啟動時呼叫全進程 SetErrorMode 函式,且參數為 SEM_FAILCRITICALERRORS 。 這是為了防止錯誤強制回應對話方塊停止應用程式。

SEM_NOGPFAULTERRORBOX
0x0002
系統不會顯示 [Windows 錯誤報告] 對話方塊。
SEM_NOOPENFILEERRORBOX
0x8000
OpenFile函式在找不到檔案時不會顯示訊息方塊。 相反地,錯誤會傳回給呼叫端。 此錯誤模式會覆寫 OF_PROMPT 旗標。

[out] lpOldMode

如果函式成功,此參數會設定為執行緒先前的錯誤模式。 此參數可以是 Null

傳回值

如果函式成功,則傳回非零的值。

如果此函式失敗,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

備註

每個進程都有相關聯的錯誤模式,指出應用程式如何回應嚴重錯誤。 執行緒會繼承其執行所在進程的錯誤模式。 若要擷取進程錯誤模式,請使用 GetErrorMode 函式。 若要擷取呼叫執行緒的錯誤模式,請使用 GetThreadErrorMode 函式。

需求

   
最低支援的用戶端 Windows 7 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2008 R2 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 errhandlingapi.h (包含 Windows.h)
程式庫 Kernel32.lib
DLL Kernel32.dll

另請參閱

GetThreadErrorMode

SetErrorMode