共用方式為


處理 COM+ 管理錯誤

使用 COMAdmin 物件時所產生的錯誤會以兩種方式回報,如下所示:

  • 使用 COMAdmin 資料庫特定的錯誤碼。
  • 在特殊 ErrorInfo 集合中使用可用的擴充錯誤資訊。

錯誤碼

您可以處理系統管理錯誤碼,就像任何 COM 錯誤訊息一樣。 在 Microsoft Visual C++ 中,這些程式代碼會以 HRESULT 值的形式傳回。 在 Microsoft Visual Basic 中,它們會作為你可以捕捉的例外狀況被拋出。 針對C++程序設計人員,COM+ 管理錯誤碼定義於 Winerror.h 中。 針對 Visual Basic 程式設計人員,他們可透過 Visual Basic IDE 取得。

ErrorInfo 集合

發生錯誤時,由某種失敗碼發出訊號,視錯誤的性質而定,可能會提供更詳細的資訊。 COMAdmin 物件會在難以判斷失敗的確切原因時提供擴充的資訊,這種情況通常發生於無法提供詳細報告的時候,例如同時進行多個讀取和寫入作業。

例如,當您在 COMAdminCatalogCollection 物件上使用 PopulateSaveChanges 等方法時,您可以讀取或寫入集合中每個項目的數據。 可能會發生複雜的錯誤,而且很難根據單一數值錯誤碼進行診斷。 因此,COMAdmin 程式庫會透過特殊集合來提供擴展的錯誤資訊。

當擴充錯誤資訊可用時,它會放在與發生錯誤的原始集合相關的 ErrorInfo 集合中。 若要擷取錯誤報告,請取得與原始集合相關的 ErrorInfo 集合,並檢查其中包含的項目。 您可以在 COMAdminCatalogCollection中使用 GetCollection 來擷取 ErrorInfo 集合。通常您會指定父項的 Key 屬性,此時請將第二個參數保持為空。

當您收到錯誤時,必須立即取得並填入失敗集合中的 ErrorInfo 資料,且不得在該集合上執行任何其他操作。 否則,會重設 ErrorInfo 集合,而不會詳細說明該失敗。

ErrorInfo 集合中的專案會公開特殊錯誤報告屬性 MajorRef 和 MinorRef,其中詳細說明錯誤的特定原因。 如需詳細資訊,請參閱 ErrorInfo

交易內的 COM+ 管理作業

使用 COM+ 系統管理類別目錄 簡介範例

COMAdmin 物件概觀

從 COM+ 目錄擷取集合

設定屬性並將變更儲存至 COM+ 目錄