異常狀況

所有問題都是藉由異常狀況物件來報告,該物件是 WVCM 所定義之異常狀況物件的子類別。
用戶端可以從異常狀況中取得下列資訊:

每一項作業都會定義一組前置條件,這些條件必須符合,作業才會順利。例如,要讀取其內容的資源必須存在、與要建立之資源同名的資源不能存在、要移出的資源必須已版本化且已移入。違反這類前置條件會造成作業擲出異常狀況。

作業經常可以套用至資源的集合。如果任一資源的作業失敗,則會擲出異常狀況(並在異常狀況物件中報告成功的項目)。

伺服器在讀取或寫入資源的內容或 Meta 內容時所發生的問題,並不會造成 ClearQuest® CM API 作業擲出異常狀況。反之,該異常狀況會與已傳回虛擬物件內的內容相關聯。僅當用戶端嘗試從虛擬物件擷取該內容值時,才會擲出異常狀況。用戶端也可能會在擷取內容值之前先詢問虛擬物件,以判斷是否有任何問題,並取得異常狀況而不擲出。請參閱關於內容的其他資訊

ClearQuest CM API 包含下列幾種主要的異常狀況:

StpException

StpExceptionWvcmException 的延伸規格,也是 ClearQuest CM API 所擲出之所有已檢查的異常狀況的基礎類別。所有 WVCM 定義方法的所有實作都會擲出 WvcmException。ClearQuest CM API 的所有公用方法(WVCM 的延伸規格)也都會擲出 WvcmException。不過,這些所有方法的實作一律只會擲出 StpException,而非 WvcmExceptions。這些使用慣例所適用的情況如下:
  • 在任何方法宣告(公用或其他)中絕不會擲出 StpException。即使方法擲出 StpException,其宣告的方式也會視同它是擲出 WvcmExceptions
  • 方法絕不會擲出新的 WvcmExceptions。雖然異常狀況可以用 WvcmExceptions 表示,但它一律作為新的 StpException 而擲出。

StpPropertyException

StpPropertyException 延伸了 StpException,也是與讀取或寫入資源內容相關聯之錯誤的基礎異常狀況類別。

在從伺服器要求內容值之後,其名稱即會與結果相關,並儲存在虛擬物件中。如果擷取嘗試已成功,則該名稱會與擷取的值相關聯,如果擷取嘗試不成功,則會與狀態資訊相關聯(以 StpPropertyException 物件的形式)。

StpPartialResultsException

StpPartialResultsException 延伸了 StpPropertyException ,其用來報告包含多個資源的作業或內容失敗。它可用來作為 ResourceList(其通常是由作業或內容傳回)的替代項目。它包含一個 ResourceList(其具有已順利處理之資源的虛擬物件),以及 StpExceptions 的清單(每一個皆對應於一個作業失敗的資源)。請參閱 Javadoc 資訊以取得詳細資料。


意見