其派生庫及描述如下:
| 記憶體不夠 |
| 請求不支持的操作 |
| 文檔指定異常 |
| 檔案指定異常 |
CResourceException | Windows資源未找到或不可創建 |
| OLE異常 |
| 資料庫異常(即基於開放資料庫連線的MFC資料庫類出現異常) |
| OLE傳送(自動)異常 |
CUserException | 資源無法找到 |
| 數據訪問對象異常(即DAO類出現異常) |
| Internet異常(即Internet類出現異常) |
這些異常經常使用THROW,THROW_LAST,TRY,CATCH,AND_CATCH,END_CATCH宏。要了解有關異常的更多信息,請參閱在線上文檔“Visual C++程式設計師指南”中的“異常”或“
異常處理”。
要獲取指定的異常,可使用相對應的派生庫。要獲取所有異常的類型,可調用CException,然後用CObject::IsKindOf來區分CException派生類。注意CObject::IsKindOf僅對由IMPLEMENT-DANAMIC宏定義的類有效,以便得到動態類型檢查帶來的好處。任何CException派生類都應由IMPLEMENTDANAMIC宏創建。
可以調用GetErrorMessage或ReportError來向用戶報告異常的詳細情況。這兩個派生類適用於任何CException派生類。
如果一個宏獲取異常,CException對象會被自動刪除,無須用戶刪除。
如果Catch關鍵字得到異常,則不會自動刪除。請參閱在線上文檔“Visual C++程式設計師指南”中的“異常”,以了解有關何時刪除一個異常對象的更多信息。
CException是一個抽象基類,不可構造一個CException對象。如果想創建自己的CException類型,可參照上述派生類。注意
派生類也使用了IMPLEMENTDANAMIC。
#include <afx.h>
CException類的成員
操作
| 構造一個CException對象 |
| 刪除一個CException對象 |
GetErrorMessage | 獲取異常描述信息 |
ReportError | 在訊息框中向用戶報告一個錯誤信息 |