共用方式為


POS 例外狀況處理 (POS for .NET v1.14 SDK 文件)

Microsoft Point of Service for .NET (POS for .NET) 中的錯誤處理是根據擲回和攔截例外狀況的物件導向模型所建置。 為了回應執行階段錯誤而擲回不同的例外狀況,而且每個例外狀況都包含以 ErrorCode 形式將其觸發之錯誤的相關資訊。

所擲回例外狀況的 ErrorCode 屬性會保存錯誤原因的相關資訊。 此屬性的可能值代表一組完整標準整合服務點 (UnifiedPOS) 錯誤碼。 如需 UnifiedPOS 錯誤碼與 POS for .NET ErrorCode 值間之對應的詳細資訊,請參閱 POS for .NET 例外狀況類別

POS for .NET 提供四個例外狀況類別,以協助應用程式更妥善地處理錯誤。 這些是 PosExceptionPosControlExceptionPosManagementExceptionPosLibraryException

  • PosException 是保存一般例外狀況資料的抽象類別。 PosException 滿足與 .NEt Framework 中 System.Exception 類別的角色類似的角色,而且是 UnifiedPOS 規格中 UposException 類別的 POS for .NET 實作。 所有其他 POS for .NET 例外狀況類別都是衍生自 PosException
  • PosControlException 是 POS for .NET 服務物件所擲回的標準例外狀況。 PosControlException 包含 ErrorCode 屬性,其中保存例外狀況原因的相關資訊。
  • PosLibraryException 會保存 PosExplorer 在類別作業期間所產生的例外狀況資料。 PosLibraryException 未包含 ErrorCode 屬性。
  • PosManagementException 保存 POS for .NET 管理 API 所產生的例外狀況資料。 PosManagementException 未包含 ErrorCode 屬性。

POS for .NET 中的錯誤處理

POS for .NET 中的錯誤處理符合 UnifiedPOS 規格指導方針的規範。 錯誤處理是由事件所驅動、使用錯誤碼來儲存例外狀況資訊,而且大部分是是實作所特有。

POS for .NET 中的錯誤處理遵循此一般程序:

  1. 事件驅動輸入會擲回錯誤。

  2. 裝置會變更其 State 屬性,以指出發生錯誤。

  3. ErrorEvent 事件已排入佇列,以警示應用程式發生錯誤。 ErrorEvent 會新增至佇列結尾。

  4. 如果一或多個 DataEvent 事件已在 ErrorEvent 事件前面排入佇列,則會將另一個 ErrorEvent 排入佇列,並將其新增至佇列的前端。 這會在處理任何已排入佇列的 DataEvents 之前,快速警告應用程式發生錯誤,使其以實作特有方式予以回應。

  5. 如果應用程式屬性設定為接受事件 (DataEventEnabledtrueFreezeEventsfalse),則會以 ErrorResponse 屬性所決定的方式來回應 ErrorEvent 事件,如下表中所指出。

    回應的意義
    Clear 清除任何已緩衝的 DataEvent 事件和 ErrorEvent 事件、結束 [錯誤] 狀態,並將裝置 [狀態] 變更為 [閒置]。
    ContinueInput 認可錯誤,並指示裝置繼續處理。 裝置會維持 [錯誤] 狀態,並會依 DataEventEnabled 屬性指示來傳遞其他資料事件。 傳遞所有輸入且 DataEventEnabled 屬性再次設定為 true 時,會使用 locus Input 傳遞另一個 ErrorEvent。
    重試 指示裝置重試輸入。 [錯誤] 狀態結束,且 [狀態] 已變更為 [閒置]。 此回應只有在裝置章節特別允許而且 locus 為 Input 時才會予以選取。

    應用程式也可能會採取實作特定步驟,以回應目前的錯誤。

另請參閱

參考

概念