POS 异常处理(POS for .NET v1.14 SDK 文档)

适用于 .NET 的 Microsoft 服务点 (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 将排队并添加到队列最前面。 这会就错误快速警告应用程序,以便它可以在处理任何排队的 DataEvent 之前以特定于实现的方式做出响应。

  5. 如果应用程序属性配置为接受事件(DataEventEnabled 为 true 且 FreezeEvents 为 false),则它将按 ErrorResponse 属性确定的方式响应 ErrorEvent 事件,如下表所示。

    Value 响应的含义
    清除 清除所有缓冲的 DataEvent 事件和 ErrorEvent 事件,退出“错误”状态,并将设备状态更改为“空闲”。
    ContinueInput 确认错误并指示设备继续处理。 设备将保持“错误”状态,并将按照 DataEventEnabled 属性的指示传递其他数据事件。 当所有输入都已传递,并且 DataEventEnabled 属性再次设置为 true 时,将使用 locus 输入传递另一个 ErrorEvent。
    重试 指示设备重试输入。 “错误”状态退出,状态更改为“空闲”。 仅当设备章节专门允许它,并且当 locus 为输入时,才会选择此响应。

    此时,应用程序还可以执行特定于实现的步骤来响应错误。

另请参阅

参考

概念