共用方式為


例外狀況的處理

當程式執行時,就會發生異常狀況和錯誤稱為 「 例外狀況 」 的數字。 這些可能包含快要用完了記憶體、 資源配置錯誤,以及找不到檔案。

Mfc 程式庫使用密切先 C++ 所提議的 ANSI 標準委員會模式化的例外處理設計方式。 呼叫函式可能會遇到異常狀況之前,必須先設定例外處理常式。 如果此函式遇到異常狀況時,就會擲回例外狀況,而且程式控制權轉移到的例外狀況處理常式。

Mfc 程式庫所附的幾個巨集將會設定例外處理常式。 必要時,擲回特定例外狀況,並結束程式,幫助其他全域函式的數字。 這些巨集和全域函式可分為以下類別:

  • 例外巨集,而結構化例外處理常式。

  • 擲回例外狀況的函式,而產生的特定類型的例外狀況。

  • 終止函式,這樣會造成程式終止。

範例以及其他詳細資訊,請參閱文章的例外狀況

例外巨集

TRY

將指定的例外狀況的處理程式碼區塊。

攔截

將指定的攔截例外狀況,從上述的程式碼區塊區塊。

CATCH_ALL

將指定來攔截所有例外狀況,從上述的程式碼區塊區塊。

AND_CATCH

將指定的捕捉其他例外狀況類型,從上述的程式碼區塊區塊。

AND_CATCH_ALL

將指定來攔截所有其他其他例外狀況類型,會擲回在前面的程式碼區塊區塊。

END_CATCH

結束前攔截AND_CATCH的程式碼區塊。

END_CATCH_ALL

結束前CATCH_ALL的程式碼區塊。

擲回

指定的例外狀況就會擲回。

THROW_LAST

目前已處理的例外狀況,到下一個外部的處理常式就會擲回。

擲回例外狀況的函式

AfxThrowArchiveException

就會擲回例外狀況封存。

AfxThrowFileException

檔案例外狀況就會擲回。

AfxThrowMemoryException

就會擲回記憶體的例外狀況。

AfxThrowNotSupportedException

不支援的例外狀況就會擲回。

AfxThrowResourceException

Windows 資源無法找到例外狀況就會擲回。

AfxThrowUserException

會在使用者啟動的程式執行中,擲回例外狀況。

MFC 提供兩個擲回例外狀況的函式,特別是針對 OLE 例外狀況:

OLE 例外狀況的函式

AfxThrowOleDispatchException

就會擲回例外狀況的 OLE 自動化函式內。

AfxThrowOleException

就會擲回例外狀況 OLE。

若要支援資料庫例外狀況,資料庫類別提供兩個例外狀況類別, CDBExceptionCDaoException,和全域函式,以支援例外狀況型別:

DAO 例外狀況的函式

AfxThrowDAOException

就會擲回 CDaoException 從自己的程式碼。

AfxThrowDBException

就會擲回 CDBException 從自己的程式碼。

MFC 提供下列的終止函式:

終止函式

AfxAbort

就會呼叫終止應用程式在發生嚴重錯誤發生。

請參閱

參考

CException 類別

概念

MFC 巨集和全域變數