.NET용 Microsoft Point of Service(.NET용 POS)의 오류 처리는 예외를 throw하고 catch하는 개체 지향 모델을 기반으로 합니다. 런타임 오류가 발생할 때마다 각각의 오류에 대한 예외가 발생하며, 각 예외에는 이를 트리거한 오류에 대한 정보가 ErrorCode형태로 포함됩니다.
throw된 예외의 ErrorCode 속성에는 오류의 원인에 대한 정보가 포함됩니다. 이 속성에 사용할 수 있는 값은 표준 UnifiedPOS(UnifiedPOS) 오류 코드의 전체 집합을 나타냅니다. UnifiedPOS 오류 코드와 .NET ErrorCode 값에 대한 POS 간의 매핑에 대한 자세한 내용은 .NET 예외 클래스에 대한 POS를 참조하세요.
.NET용 POS는 애플리케이션에서 오류를 더 잘 처리할 수 있도록 네 가지 예외 클래스를 제공합니다. 이러한 항목은 PosException, PosControlException, PosManagementException및 PosLibraryException:
- PosException 은 일반적인 예외 데이터를 보유하는 추상 클래스입니다. PosException 은 .NET Framework의 System.Exception 클래스와 유사한 역할을 수행하며 UnifiedPOS 사양에서 UposException 클래스의 .NET 구현용 POS입니다. .NET 예외 클래스에 대한 다른 모든 POS는 PosException에서 파생됩니다.
- PosControlException 은 .NET 서비스 개체에 대해 POS에서 throw하는 표준 예외입니다. PosControlException 에는 ErrorCode 예외의 원인에 대한 정보를 포함하는 속성이 포함되어 있습니다.
- PosLibraryException 은 클래스 작업 중에 PosExplorer 에서 생성된 예외 데이터를 보유합니다. PosLibraryException 에는 ErrorCode 속성이 없습니다.
- PosManagementException 은 .NET 관리 API용 POS에서 생성된 예외 데이터를 보유합니다. PosManagementException 에는 ErrorCode 속성이 없습니다.
.NET용 POS에서 오류 처리
.NET용 POS의 오류 처리는 UnifiedPOS 사양 지침을 준수합니다. 오류 처리는 이벤트 기반이며, 오류 코드를 사용하여 예외 정보를 저장하며, 주로 구현에 따라 다릅니다.
.NET용 POS에서 오류를 처리하는 일반적인 절차는 다음과 같습니다.
이벤트 기반 입력에 의해 오류가 발생합니다.
디바이스에서 해당 속성을 변경 State 하여 오류가 발생했음을 나타냅니다.
오류 발생을 애플리케이션에 알리기 위해 ErrorEvent 이벤트가 큐에 대기됩니다. ErrorEvent가 큐의 끝에 추가됩니다.
하나 이상의 DataEvent 이벤트가 ErrorEvent 이벤트 앞에 큐에 대기하는 경우 다른 ErrorEvent 가 큐에 대기하고 큐의 헤드에 추가됩니다. 이렇게 하면 큐에 대기 중인 DataEvents를 처리하기 전에 구현별 방식으로 응답할 수 있도록 애플리케이션에 오류에 대해 신속하게 경고합니다.
애플리케이션 속성이 이벤트를 수락하도록 구성된 경우(DataEventEnabled는 true이고 FreezeEventsfalse) 다음 표에 표시된 대로 속성에 의해 결정되는 방식으로 ErrorResponse 이벤트에 응답합니다.
가치 응답의 의미 Clear 버퍼링된 DataEvent 이벤트 및 ErrorEvent 이벤트를 지우고, 오류 상태를 종료하고, 디바이스 상태를 유휴 상태로 변경합니다. 입력 계속 오류를 인정하고 디바이스에서 처리를 계속하도록 지시합니다. 디바이스는 오류 상태로 유지되며 DataEventEnabled 속성의 지시에 따라 추가 데이터 이벤트를 제공합니다. 모든 입력이 배달되고 DataEventEnabled 속성이 다시 true로 설정되면 다른 ErrorEvent가 궤적 입력과 함께 전달됩니다. Retry 입력을 다시 시도하도록 디바이스에 지시합니다. 오류 상태가 종료되고 상태가 유휴 상태로 변경됩니다. 이 응답은 디바이스 챕터에서 특별히 허용하는 경우와 궤적이 입력인 경우에만 선택됩니다. 애플리케이션은 현재 오류에 응답하기 위해 구현별 단계를 수행할 수도 있습니다.
또한 참조하십시오
Reference
개념들
.NET