共用方式為


POS Exception Handling (POS for .NET v1.14 SDK 文件)

Microsoft Point of Service for .NET(POS for .NET)中的錯誤處理是建立在物件導向的拋出與捕捉例外模型之上。 針對執行時錯誤會拋出不同的例外,每個例外都包含觸發該 ErrorCode錯誤的資訊,形式為 。

拋出例外的 ErrorCode 屬性會儲存錯誤原因的資訊。 此屬性的可能值代表標準統一服務點(UnifiedPOS)錯誤碼的完整集合。 欲了解更多關於 UnifiedPOS 錯誤代碼與 POS for .NET 錯誤代碼 值之間的映射,請參見 POS for .NET Exception Classes

POS for .NET 提供四個例外類別,幫助應用程式更好地處理錯誤。 這些分別是 PosExceptionPosControlExceptionPosManagementExceptionPosLibraryException

  • PosException 是一個抽象類別,儲存一般的例外資料。 PosException 扮演類似 .NET Framework 中 System.Exception 類別的角色,並且是 UnifiedPOS 規範中 UposException 類別的 POS for .NET 實作。 所有其他 POS for .NET 例外類別皆由 PosException 衍生而來。
  • PosControlException 是 POS 對 .NET 服務物件所拋出的標準例外。 PosControlException 包含 ErrorCode 一個屬性,該屬性包含關於異常原因的資訊。
  • PosLibraryException 儲存 PosExplorer 在類別操作中產生的異常資料。 PosLibraryException 不包含 ErrorCode 屬性。
  • PosManagementException 儲存 POS 為 .NET 管理 API 產生的例外資料。 PosManagementException 不包含 ErrorCode 屬性。

POS for .NET 中的錯誤處理

POS for .NET 的錯誤處理符合 UnifiedPOS 規範指引。 錯誤處理是事件驅動的,使用錯誤碼來儲存異常資訊,且主要依實作而異。

在 POS for .NET 中處理錯誤的一般流程如下:

  1. 事件驅動的輸入會產生錯誤。

  2. 裝置會改變其 State 屬性,表示遇到錯誤。

  3. ErrorEvent 事件排入佇列,以警示應用程式已發生錯誤。 ErrorEvent 會被加入到佇列的末端。

  4. 如果一個或多個 DataEvent 事件被排在 ErrorEvent 事件之前,則會將另一個 ErrorEvent 排入佇列並放在佇列前端。 這會快速警告應用程式發生錯誤,使其能在處理任何排隊的 資料事件之前,以特定於實作的方式進行回應。

  5. 若應用程式屬性設定為接受事件(DataEventEnabledFreezeEvents),則將根據屬性決定的方式回應ErrorEvent事件,ErrorResponse如下表所示。

    價值觀 回應的意義
    清除所有緩衝的 DataEvent 事件和 ErrorEvent 事件,退出錯誤狀態,並將裝置狀態改為閒置。
    繼續輸入 會確認錯誤並指示裝置繼續處理。 裝置會維持錯誤狀態,並依照 DataEventEnabled 屬性指示,提供額外的資料事件。 當所有輸入都已交付,且 DataEventEnabled 屬性再次設為 true,則會在 Input 位置交付另一個 ErrorEvent。
    Retry 指示裝置重新嘗試輸入。 錯誤狀態被退出,狀態改為閒置。 只有當裝置章節明確允許且位置為輸入時,才會選擇此回應。

    應用程式此時也可能採取針對實作的特定步驟來回應錯誤。

另請參閱

Reference

概念