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

Microsoft .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 类的 .NET 实现的 POS。 .NET 异常类的所有其他 POS 都派生自 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 将排队并在队列的头添加。 这会快速向应用程序发出错误警告,以便它能在处理任何排队的DataEvents之前,以特定于实现的方式作出响应。

  5. 如果应用程序属性配置为接受事件(DataEventEnabledtrueFreezeEvents为 false),则它以属性确定的方式响应 ErrorResponse 事件,如下表所示。

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

    应用程序可能还会采取特定实现的步骤来响应错误。

另请参阅

Reference

概念