使用 COMAdmin 物件時所產生的錯誤會以兩種方式回報,如下所示:
- 使用 COMAdmin 資料庫特定的錯誤碼。
- 在特殊 ErrorInfo 集合中使用可用的擴充錯誤資訊。
錯誤碼
您可以處理系統管理錯誤碼,就像任何 COM 錯誤訊息一樣。 在 Microsoft Visual C++ 中,這些程式代碼會以 HRESULT 值的形式傳回。 在 Microsoft Visual Basic 中,它們會作為你可以捕捉的例外狀況被拋出。 針對C++程序設計人員,COM+ 管理錯誤碼定義於 Winerror.h 中。 針對 Visual Basic 程式設計人員,他們可透過 Visual Basic IDE 取得。
ErrorInfo 集合
發生錯誤時,由某種失敗碼發出訊號,視錯誤的性質而定,可能會提供更詳細的資訊。 COMAdmin 物件會在難以判斷失敗的確切原因時提供擴充的資訊,這種情況通常發生於無法提供詳細報告的時候,例如同時進行多個讀取和寫入作業。
例如,當您在 COMAdminCatalogCollection 物件上使用 Populate 和 SaveChanges 等方法時,您可以讀取或寫入集合中每個項目的數據。 可能會發生複雜的錯誤,而且很難根據單一數值錯誤碼進行診斷。 因此,COMAdmin 程式庫會透過特殊集合來提供擴展的錯誤資訊。
當擴充錯誤資訊可用時,它會放在與發生錯誤的原始集合相關的 ErrorInfo 集合中。 若要擷取錯誤報告,請取得與原始集合相關的 ErrorInfo 集合,並檢查其中包含的項目。 您可以在 COMAdminCatalogCollection中使用 GetCollection 來擷取 ErrorInfo 集合。通常您會指定父項的 Key 屬性,此時請將第二個參數保持為空。
當您收到錯誤時,必須立即取得並填入失敗集合中的 ErrorInfo 資料,且不得在該集合上執行任何其他操作。 否則,會重設 ErrorInfo 集合,而不會詳細說明該失敗。
ErrorInfo 集合中的專案會公開特殊錯誤報告屬性 MajorRef 和 MinorRef,其中詳細說明錯誤的特定原因。 如需詳細資訊,請參閱 ErrorInfo。
相關主題
-
使用 COM+ 系統管理類別目錄 簡介範例